Uncategorized

Uncategorized

《Java深入微服务原理改造房产销售平台》知识点梳理与问答总结

《Java深入微服务原理改造房产销售平台》单体知识点 一图胜千言 《Java深入微服务原理改造房产销售平台》微服务知识点 一图胜千言 《Java深入微服务原理改造房产销售平台》日常答疑 既然已经在session有了,直接session取就行了,为什么要再放threadlocal,之后再从threadlocal清掉,一直从session拿不就行了? 答: 放在Threadlocal里面,是为了后面的Controller、Service、Dao任何地方只要是当前业务处理的线程都能 直接并且方便的 获取到用户对象. 如果我们不做这种处理,那只能从Session中获取,当Service里面要获取user的时候,Controller在调用service方法时就必须传递HttpServletRequest这种容器相关参数,增加了业务与底层实现的耦合,造成业务处理关注点的增多;而且每个Controller都需要接收HttpServletRequest参数,因为不能预估未来是否要获取user对象来逻辑处理。 2 nginx的配置中root和alias的区别? 答: root和alias的区别是酱紫的: 配置root需要访问路径要叠加目录路径,比如配置了 location /images { root […]

Uncategorized

Maven-maven多模块项目搭建+Dubbo分布式服务框架

maven多模块项目搭建 最近呢学校校企合作培训,老师给我们出了一道题让做一个秒杀系统。要求前后端分离,要有独立的商品服务,独立的库存服务,独立的交易服务。经过团队的协商我们决定使用maven多模块,来将这些服务进行整合,到最后统一一键暴露接口服务,而不用再一个个启动服务了。 1.新建maven项目 2.选择项目存放的路径后,选择创建一个简单的maven项目 3.填写Group Id和Artifact Id,也可以自定义版本号 4.项目的目录结构很简单 5.这里我们要看一下pom.xml,这里Packaging需要改为pom 接下来我们构建里面的子模块(seckill_interface) 1.在已经建成的项目上右键新建project此时选择创建Maven Module 2.此时项目类型选择为maven-archetype-quickstart 3.建成之后的项目结构为 接下创建提供服务的模块儿(user_backService,business_backService,commodity_backService,stock_backService) 这四个独立的服务项目构建过程与seckill_interface构建过程一样 最终结构如下图 为了使这些服务能跑起来需要我们去创建一个如下类型的maven子项目(web) 然后填写Group Id和Artifact

Uncategorized

【极力推荐】—安装阿里代码规约检查插件

前言 从阿里2月9日首次公布《阿里巴巴Java开发规约》后整个java世界都沸腾了,想起来以前写的代码真的是【完全没有规律可循】 在10月14日,杭州云栖大会,阿里巴巴对外开放了Java代码规约插件及源码 对于我们职场新人或是java初学者来说的确是一个不小的福利,从我们自己去检查到自动化检查处理,的确是方便了很多 如何安装IDEA插件? 最低支持版本14.1.7,JDK1.7+ 打开 File>>Settings >> Plugins >> Browse repositories 输入 Alibaba 搜索 找到:Alibaba Java Coding Guidelines

Uncategorized

Linux——CentOS7之screen安装与命令详解

前言 这几天在摆置服务器时犹豫网络问题导致SSH远程登录linux时总是非正常中断,登录上后无法继续刚刚的任务,所以【崩溃中】。未解决这个问题我找到了它screen。 简介 使用telnet或SSH远程登录linux时,如果连接非正常中断,重新连接时,系统将开一个新的session,无法恢复原来的session.screen命令可以解决这个问题。Screen工具是一个终端多路转接器,在本质上,这意味着你能够使用一个单一的终端窗口运行多终端的应用。 会话恢复 只要Screen本身没有终止,在其内部运行的会话都可以恢复。这一点对于远程登录的用户特别有用——即使网络连接中断,用户也不会失去对已经打开的命令行会话的控制。只要再次登录到主机上执行screen -r就可以恢复会话的运行。同样在暂时离开的时候,也可以执行分离命令detach,在保证里面的程序正常运行的情况下让Screen挂起(切换到后台)。这一点和图形界面下的VNC很相似。 多窗口 在Screen环境下,所有的会话都独立的运行,并拥有各自的编号、输入、输出和窗口缓存。用户可以通过快捷键在不同的窗口下切换,并可以自由的重定向各个窗口的输入和输出。Screen实现了基本的文本操作,如复制粘贴等;还提供了类似滚动条的功能,可以查看窗口状况的历史记录。窗口还可以被分区和命名,还可以监视后台窗口的活动。 会话共享 Screen可以让一个或多个用户从不同终端多次登录一个会话,并共享会话的所有特性(比如可以看到完全相同的输出)。它同时提供了窗口访问权限的机制,可以对窗口进行密码保护。 GNU’s Screen 官方站点:http://www.gnu.org/software/screen/ 语法 screen [-AmRvx -ls -wipe][-d <作业名称>][-h

Uncategorized

今晚吃什么:咖喱鸡肉饭

用料:   鸡胸肉、土豆、胡萝卜、好侍百梦多咖喱、洋葱、番茄、生姜、生抽、黄酒、食用油、食盐   (按用餐人数准备食材分量。我们家4个人吃,用料见下图,实际操作时多加了一个土豆,胡萝卜去掉一半。供大家参考!)     做法(4人份): 1.鸡胸肉洗净切块放入碗中,加入生姜、黄酒、生抽、食盐腌渍40分钟,后入炒锅煸炒至变色,起锅待用。 2.土豆和胡萝卜洗净去皮后切块,洋葱和西红柿洗净后切碎。 3.炒锅倒入适量食用油,烧热,放入洋葱西红柿碎翻炒出香气,倒入5碗清水,大火烧开后转小火慢炖直至洋葱西红柿成糊状。 (成品图完全看不出有放西红柿和洋葱,好吃的重点就在这里!洋葱西红柿糊和咖喱融合后特别美味,它们起到提味的作用!) 4.糊中加入土豆、胡萝卜和煸炒好的鸡肉一起焖煮,煮一会试出土豆熟透后加入咖喱块,不断用锅铲搅拌,以免糊底。 (如果喜欢胡萝卜软烂一些,可以把它放到第三个步骤里去) 5.待汤汁变浓稠后尝一尝味道,根据个人口味选择是否再加盐。 6.完美出锅!

Uncategorized

MariaDB Galera Cluster 部署

如何快速部署MariaDB集群 陈亮 — July 02, 2015   MariaDB作为Mysql的一个分支,在开源项目中已经广泛使用,例如大热的openstack,所以,为了保证服务的高可用性,同时提高系统的负载能力,集群部署是必不可少的。 MariaDB Galera Cluster 介绍 MariaDB集群是MariaDB同步多主机集群。它仅支持XtraDB/ InnoDB存储引擎(虽然有对MyISAM实验支持 – 看wsrep_replicate_myisam系统变量)。 主要功能: 同步复制 真正的multi-master,即所有节点可以同时读写数据库 自动的节点成员控制,失效节点自动被清除

Uncategorized

学会用各种姿势备份MySQL数据库

  前言 为什么需要备份数据? 数据的备份类型 MySQL备份数据的方式 备份需要考虑的问题 设计合适的备份策略 实战演练 使用cp进行备份 使用mysqldump+复制BINARY LOG备份 使用lvm2快照备份数据 使用Xtrabackup备份 总结 前言 我们试着想一想, 在生产环境中什么最重要?如果我们服务器的硬件坏了可以维修或者换新, 软件问题可以修复或重新安装, 但是如果数据没了呢?这可能是最恐怖的事情了吧, 我感觉在生产环境中应该没有什么比数据跟更为重要.

Uncategorized

在Service Fabric上运行微服务

原文:Microservices à la Service Fabric 作者:Chase Aucoin 翻译:张鑫健;审校:孙薇 责编:钱曙光,关注架构和算法领域,寻求报道或者投稿请发邮件qianshg@csdn.net,另有「CSDN 高级架构师群」,内有诸多知名互联网公司的大牛架构师,欢迎架构师加微信qshuguang2008申请入群,备注姓名+公司+职位。 Service Fabric框架对微软而言是一大进步。其核心部分是一个分布式系统平台,用于构建可扩展的可靠应用。在便于封装可部署代码的同时,还内置了微服务最佳实践案例。 本文将带您最快地上手使用Service Fabric框架,并保证您会爱不释手。但想要了解Service Fabric框架以及它的重大意义,就有必要了解现代软件发展到今天,在采用Service Fabric框架前,前人们血与泪的历史。 面向对象的黄金时代 在引入面向对象和现代的计算模式之后,计算机界发生了翻天覆地的变化。Visual Basic在1991年面世,真正揭开了现代风格软件开发的序幕,使得开发人员可以专注于商业价值,而不用像之前那样顾虑一大堆硬件特性的问题。之后在这种开发思路下,出现了后来的运行库,比如1995年的Java,2000年的.NET framework和C#。尽管在之后几年中,Java和C#出现了些许变化,但采用的模式和实践方式却没有太大变化。

Uncategorized

超长干货:基于Docker的DevOps CI/CD实践——来自iHealth的分享

本文由1月31日晚iHealth运维技术负责人郭拓在Rancher官方技术交流群内所做分享的内容整理而成,分享了iHealth从最初的服务器端直接部署,到现在实现全自动CI/CD的实践经验。文末添加Rancher小助手为好友加入技术交流群,可实时参加下一次技术分享~ 前言 相信我,一切事情的发生都是赶鸭子上架,没有例外。人类所有伟大的变革都是迫不得已,可又是那么顺其自然。比如容器(docker)技术的诞生,比如箭在弦上的创业,比如野心勃勃的kubernetes,比如如今已作为左膀右臂的rancher,比如这篇文章。 不同于郑兄的CI/CD实践《如何利用Docker构建基于DevOps的全自动CI》,我们结合自身状况,构建了一套我们自己的DevOps CI/CD流程,更轻更小,更适合Startup。 合适的才是最好的(Node.js & Docker) 如果世界只有FLAG、BAT,那就太无趣了。iHealth是一家初创型公司,我所在的部门有大概10名研发人员,在担负着三端研发工作的同时,所有围绕服务的交付和运维工作也都是我们来做。 技术的选型上,服务端、Web端和移动端(Android、iOS)都要上,但人少。所以招人的时候并没有以貌取人的资格,部门对外的Title都是全栈。能一门语言通吃三端,群众基础广泛,恐怕没有比Javascript/Typescript(Node.js)更合适的了。 服务端有Express、Koa、Feather、Nest、Meteor等各有其长的框架,前端大而火的Reactjs、Vuejs和Angular,不管是Server Render还是前后端分离,都可以得心应手。因为公司的健康设备(血糖仪、血压计、体温计、血氧、体脂秤等等)会有专门的部门研发设计以及提供SDK,所以移动端的研发工作更多是在设计实现和性能优化上,React Native是一枚大杀器。虽然现在公司并没有桌面端的需求,但不能否认的是Electron是一个很有趣的项目,也为“全栈”这个词增加了更多背书。     另外,选择使用Node/Js/Ts作为全栈的基础会附带有RPC的好处。无需集成传统意义上的RPC框架(如gRPC),只需在编写远程(微)服务方法时,编写相应的npm package,也可以达到相同的目的,且成本更小,更易理解。 运维环境的选型上,所有的业务都运行在云端,省去了机房维护和服务器运维的成本。其实在盘古开荒时,我们也是编写了Node程序后,使用PM2部署在服务器上,并没有使用Docker。当然也存在没有使用Docker所带来的一切问题:三端不同步、环境无法隔离……而Docker带给我最大的惊喜除了超强的可移植性,更在于研发人员可以非常容易对程序的顶级架构进行推理。 事实上,我们直接使用docker-compose做容器编排着实有一段时间,在一次大规模的服务器迁移中,发现需要重新思考越来越多的container管理和更完善的编排方案。Rancher(Cattle)就是在这时被应用到技术栈中。 一切从Github开始

Scroll to Top