![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
微服务架构
木楚
每一个技术大牛都是从力定信念和苦学的菜鸟开始,每一个技术菜鸟都是从放弃谦卑和学习的技术大牛开始!
展开
-
StringBoot、SpringData并用原生的HQL(复杂查询)进行整合坑之一
StringBoot整合SpringData、MyBatis记录一个坑:pom.xml中StringBoot这个2.1.0.RELEASE版本千万不要选择。要不然会报这个错:<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-s...原创 2018-11-01 11:45:05 · 1180 阅读 · 0 评论 -
SpringSecurity、Spring Social、SpringSession、TX-LCN、Spring Cloud Data Flow、JWT 架构(二)
今天继续聊SpringSecurity,说明一下下面所有的聊天内容都基本是以前面的为基础,所以有兴趣的同学不要跳跃,以免有所遗漏。昨天的一聊中我们只是简简单单的搭建起来了一个SpringSecurity的入门案例。这个案例根本满足不了我们日常的研发需要,所以我们必须深度的对SpringSecurity的探究一下。以昨天的为基础:昨天的是利用SpringSecurity自带的登录页面进行登录,今天探...原创 2019-07-25 14:59:40 · 284 阅读 · 0 评论 -
以案例聊聊SpringCloud分布式系统的架构者(六)
还有两点来聊一下,一个是:SpringCloud的配置中心;一个是SpringCloud的消息总线。我们先聊一下SpringCloud的配置中心。SpringCloud的配置中心全称是SpringCloud分布式配置中心。先说说他的作用:在分布式系统中面临的一个配置问题。分布式系统及微服务意味着要将单体应用中的业务拆分成一个个子服务,每个服务的粒度相对较小,因此系统中会出现大量的服务。由于每个服务...原创 2019-07-17 14:52:50 · 214 阅读 · 0 评论 -
SpringSecurity、Spring Social、SpringSession、TX-LCN、Spring Cloud Data Flow、JWT 架构(八)
继续SpringSession。今天看怎么用。用SpringSession得借助第三方的力量Nginx和Redis。Nginx负责反向代理用户请求并对请求进行转发到不同的机器上,Redis负责存储session。这里我只是做个测试而已,所以用windows版本的Nginx和Redis。真实的应该在Linux中或者docker中。windows版的Nginx构建:第一步:去官网下载win...原创 2019-07-30 15:19:11 · 201 阅读 · 0 评论 -
RabbitMQ进阶使用(多消费者亦为WorK模式)
上一次我们聊了RabbitMQ服务的构建和简单使用。我在这里聊一下里面的关键字:Message :消息,消息是不具名的,它由消息头和消息体组成。消息体是不透明的,而消息头则由一系列的可选属性组成,这些属性包括routing-key(路由键)、 priority(相对于其他消息的优先权)、 delivery-mode(指出该消息可能需要持久性存储)等。Publisher:消息的生产者,也是...原创 2019-07-21 15:42:54 · 5126 阅读 · 0 评论 -
以案例聊聊SpringCloud分布式系统的架构者(十)
最后一点了,搞完就基本SpringCloud就聊完了。聊完SpringCloud,我会再聊聊大数据方面的技术主要方向在Hadoop、Spark等一共十几种大数据技术和架构实现;在人工智能方面的技术中主要方向在于二十种人工智能常见算法和具体实现;人工智能具体实现中主要聊的方向在人脸、语音、图片识别和机器的神经网络、机器的自主学习等方面。然后再说说比特币的前生今世和整个区块链的实现架构和技术要点等等;...原创 2019-07-22 14:23:08 · 226 阅读 · 0 评论 -
SpringSecurity、Spring Social、SpringSession、TX-LCN、Spring Cloud Data Flow、JWT 架构(十三)
今天我们聊事务TX-LCN,当然这里的事务肯定不是单机的也不是数据库的事务,这里主要聊分布式架构时的事务。好了,接下来我们就来聊聊。分布式事务指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。简单的说,就是一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,且属于不同的应用,分布式事务需要保证这些小操作要么全部成功,要么全部失败。本...原创 2019-08-04 11:07:29 · 290 阅读 · 0 评论 -
SpringSecurity、Spring Social、SpringSession、TX-LCN、Spring Cloud Data Flow、JWT 架构(三)
继续SpringSecurity,今天我们来聊聊退出登录时的页面跳转和session注销。SpringSecurity提供了这方面的支持。在上一篇文章的基础之上直接来聊聊:springsecrity.xml<beans:beans xmlns="http://www.springframework.org/schema/security" xmlns:beans="http:...原创 2019-07-26 16:48:41 · 227 阅读 · 0 评论 -
SpringSecurity、Spring Social、SpringSession、TX-LCN、Spring Cloud Data Flow、JWT 架构(一)
先来介绍:SpringSecurity一个能够为基于Spring的企业应用系统提供声明式的安全訪问控制解决方式的安全框架(简单说是对访问权限进行控制嘛),应用的安全性包括用户认证(Authentication)和用户授权(Authorization)两个部分。用户认证指的是:验证某个用户是否为系统中的合法主体,也就是说用户能否访问该系统。用户认证一般要求用户提供用户名和密码。系统通过校验用户名和密...原创 2019-07-23 09:46:38 · 287 阅读 · 0 评论 -
SpringSecurity、Spring Social、SpringSession、TX-LCN、Spring Cloud Data Flow、JWT 架构(九)
今天来聊聊JWT。JWT是个什么东东?JWT全称呢是叫:JSON Web Token(JWT)它是目前最流行的跨域身份验证解决方案。先说说为啥要有JWT呢?因为分布式的两个系统之间的访问和数据传输存在跨域的问题。在单机服务器中确认用户身份一般是这样的:1.用户向服务器发送用户名和密码。2.验证服务器后,相关数据(如用户角色,登录时间等)将保存在当前会话中。3.服务器向用户返回sessi...原创 2019-08-01 09:06:18 · 221 阅读 · 0 评论 -
SpringSecurity、Spring Social、SpringSession、TX-LCN、Spring Cloud Data Flow、JWT 架构(十)
继续JWT,这次我们来聊聊具体的使用。JWT提供多种加密的方式,可以对默认信息和自定义信息进行加密,正如上一篇所述,JWT生成的值是字符串,由三部分组成:头、载体、签名。具体的使用步骤是这样的:第一步:自定义加密的秘钥,这个秘钥是服务端的。一般为26个英文字母的大小写一起的随机组合。//服务端的秘钥private static final String SERVER_KEY = "...原创 2019-08-01 14:02:23 · 177 阅读 · 0 评论 -
SpringSecurity、Spring Social、SpringSession、TX-LCN、Spring Cloud Data Flow、JWT 架构(四)
继续SpringSecurity。今天我们聊SpringSecurity的标签库以及基于SpringSecurity的标签库和认证访问来动态的显示页面。SpringSecurity提供了一个较为完整的标签库,用这些标签我们可以控制访问的流程、权限、页面显示等。接下来我们用SpringSecurity的标签库来继续我们上面的案例。第一步:在pom.xml中添加SpringSecurity的依赖:...原创 2019-07-28 11:48:58 · 259 阅读 · 0 评论 -
SpringSecurity、Spring Social、SpringSession、TX-LCN、Spring Cloud Data Flow、JWT 架构(五)
今天继续SpringSecurity,今天我们来聊基于角色的权限用户登录,我们来看下面的这个思路图:上面就是基于角色的权限控制图,接下来我们来实现他:第一步:定义两个页面。一个是User可以访问的,一个是admin可以访问的。其中User普通用户可以访问的我们定义为userWelCome.jsp,管理员admin可访问的我们定义为:adminWelCome.jsp第二步:创建处...原创 2019-07-28 15:37:53 · 209 阅读 · 0 评论 -
SpringSecurity、Spring Social、SpringSession、TX-LCN、Spring Cloud Data Flow、JWT 架构(六)
继续SpringSecurity。上一篇我们看到了基于角色的权限的用户登录,可以实现不同的用户根据不同的角色跳转到不同的页面中。但用户都是事先配置好在配置文件中,这样不利于动态扩展,那么接下来我们就解决一下这个问题。解决这个问题我们可以利用数据库。接下来看吧:第一步:添加mysql数据库的依赖:<!-- MySQL --> <dependency>...原创 2019-07-28 17:16:44 · 219 阅读 · 0 评论 -
SpringSecurity、Spring Social、SpringSession、TX-LCN、Spring Cloud Data Flow、JWT 架构(十一)
今天我们继续聊聊JWT,从上一次的聊天中我们可以看出。JWT的功能还是比较强大的。而在上一次的示例代码我们可以封装成一一个工具对象来使用。我们看看在JavaWeb中JWT如何使用。第一步:创建两个页面login.jsp和welcome.jsplogin.jsp:<%@ page language="java" contentType="text/html; charset=UTF...原创 2019-08-02 09:40:27 · 216 阅读 · 0 评论 -
SpringSecurity、Spring Social、SpringSession、TX-LCN、Spring Cloud Data Flow、JWT 架构(七)
今天我们开始聊SpringSession,先介绍一下SpringSession。简介:一句话SpringSession提供了用于管理用户会话信息的API和实现。特点:SpringSession使得支持集群会话变得非常简单,而无需绑定到特定于应用程序容器的解决方案。它还提供透明的整合,包括: HttpSession-允许在应用程序容器(即Tomcat)中性的方式中替换HttpSessi...原创 2019-07-29 09:18:24 · 380 阅读 · 0 评论 -
SpringCloud的Eureka注册中心一直报Connect to localhost:8761 time out的问题
这个报错以后你去查看左右的机器端口占用情况,你就会发现8761端口任何服务都没有占用。所以的最大原因可能是没有覆盖SpringCloud中默认的配置。下面是SpringCloud的源码//// Source code recreated from a .class file by IntelliJ IDEA// (powered by Fernflower decompiler)//...原创 2019-07-16 15:30:46 · 7699 阅读 · 4 评论 -
以案例聊聊SpringCloud分布式系统的架构者(九)
上次我们聊了聊SpringCloud中的Zipkin的构建过程。这次我们就来聊聊服务的消费者相互调用时在ZipKin中的表现和变化。既然要观察表现和变化那么就必须来用两个服务的消费者调用,这样才可以跟踪和观察。第一步:创建服务消费者A。SpringBoot的版本选择1.5.21,然后添加依赖。第二步:修改配置文件#指定端口server.port=7030#指定当前的名称...原创 2019-07-18 16:54:11 · 245 阅读 · 0 评论 -
StringBoot、SpringData并用原生的HQL(复杂查询)进行整合坑之二
在整合的时候不要自己通过maven引入SpingData包,SpringBoot里面有,包括sping的jdbc,context,context-support等包也不要引入。引入的SpringData包maven结构:<dependency> <groupId>org.springframework.data</groupId> &l...原创 2018-11-05 09:33:28 · 424 阅读 · 0 评论 -
StringBoot、SpringData并用原生的HQL(复杂查询)进行整合坑之三
具体的比较多,我这里就不详细ex赘述了,列举几个关键的即可:1、采用的SpringBoot简化了XML整合框架的大量配置。用一个main方法即可启动,所以所有的包应该在main方法之下。比如这样:2、两个不同事物事务的查询,不要往同一个包中放。这是SpringBoot在根据注解信息进行扫描包的时候会将同一个事务管理下的对象扫到并为这个对象加上事务支持。如果一个包中有两种事务支持的对象,...原创 2018-11-05 10:05:24 · 722 阅读 · 0 评论 -
SpringBoot、SpringData、Hibernate、MyBatis整合进行微、轻量级服务接口开发,然后结合freemarker和Jsp进行前后端结合。
1、开发准备 开发工具:IntelliJ IDEA 2018.1;开发环境:jdk1.8_181 Version ; maven_3.5.3 Version (maven用远程仓库映射)2、开始开发 2.1 搭建开发环境 点击 :File -->New -->Project点击project后,开始选择要生成的pro...原创 2018-11-28 15:36:44 · 1261 阅读 · 0 评论 -
在构建基于SpringCloud分布式系统的坑
一:配置服务的提供者和消费者的时候注意,在两个配置文件application.properties配置文件中,spring.application.name配置的时候value的值中间不能有下划线。如果是这样的配置就是正确的:spring.application.name=server-provider 如果是这样的配置就是错误的:spring.application.name=server_...原创 2019-07-07 15:39:18 · 494 阅读 · 0 评论 -
以案例聊聊SpringCloud分布式系统的架构者(二)
通过上面的案例可以清楚的看到,Dubbo的注册中心是借助于外部第三方的技术(主要以zookeeper为主),而SpringCloud是自己搞出来的一个注册中心EureKa。然后一个服务的提供者来提供服务,然后暴露自己的服务名称。服务的消费者看到了以后呢自己去那提供者的名称自己去消费,这里面底层的还是基于RPC的远程通信调用。那么消费者在调用的时候呢用到了一个对象RestTemplter,这个对象实...原创 2019-07-07 19:00:50 · 340 阅读 · 0 评论 -
Apache Dubbo的案例
写个案例,直接上手。1:安装Dubbo的注册中心。这里我使用zookeeper作为Dubbo的服务注册和发现中心。下载、安装、配置zookeeper这里不再赘述。注意:Windows的智能作为本机测试或者学习使用,不可用到生产上,Windows版本的下载、安装、配置在这篇博客中:https://blog.csdn.net/CDW2328/article/details/945898112:...原创 2019-07-04 19:27:32 · 2031 阅读 · 0 评论 -
以案例聊聊SpringCloud分布式系统的架构者(三)
一般的系统中存在一个很棘手的问题,就是一个服务器同时访问的量比较大,逼近甚至超过了台服务器的最大负载量,然后服务器崩了,再比如:由于网路方面的问题,用户可能在访问一个网站或者使用网站的某个热点功能的时候,突然访问不成就像网站卡顿到了那,让用户退也不是不退也不是。一般的系统中存在这个问题,在我们分布式系统中也存在这种问题,尤其是在高并发访问的情况下,同一时刻用户访问量几倍甚至几百倍的超过服务器最大承...原创 2019-07-10 20:54:49 · 277 阅读 · 0 评论 -
以案例聊聊SpringCloud分布式系统的架构者(四)
今天我们结合上一个案例来聊聊SpringCloud中路由器-Zuul。Zuul其实也是一个过滤器或者说是一个网关。你可以想象成Zuul是一个包裹的集散中心,他负责分布式系统中请求的分发映射和过滤等一系列操作。下面是SpringCloud官网(地址为:https://springcloud.cc/spring-cloud-dalston.html#_router_and_filter_zuul)对其...原创 2019-07-15 13:15:46 · 215 阅读 · 0 评论 -
Apache Dubbo的服务提供者和服务调用者的相互调用
在分布式系统中基本没有绝对的服务提供者也没有绝对的服务消费者,即便有那也是极少极少的情况。什么时候会出现这种情况呢?比如说一个分布式系统中有一个日志处理的子系统,那么好了这个子系统基本上就是一个服务的提供者,它基本不会去调用其他的系统。那么对于大多数的分布式系统而言还是存在这种服务的提供者和消费者角色互换的情况。下面就来以上一篇的案例来大概实现一下服务消费者和提供者的角色互换问题。说明一下以下...原创 2019-07-05 21:31:36 · 6842 阅读 · 0 评论 -
Dubbo的主机绑定
在发布一个Dubbo服务的时候,会生成一个dubbo://ip:port的协议地址,那么这个IP是根据什么生成的呢?这个在dubbo源码ServiceConfig.java中可以找到问题所在。可以发现,在生成绑定主机的时候,会通过一层一层的判断,直到获取到合法的ip地址。1》第一步:从配置文件中获取host,检验host是否合理,如果合理,则直接返回。反之,进行下一步的获取。String ...原创 2019-07-05 21:54:19 · 697 阅读 · 0 评论 -
以案例聊聊SpringCloud分布式系统的架构者(七)
上一篇我们聊了聊SpringCloud中服务配置中心的作用和构建的流程。接下来我们聊一下服务的消费者要获取配置服务中心中配置文件的数据的方式。消费者从配置服务中心获取配置文件中的数据时一般发生在项目启动的时候或者有请求访问的时候。好了不嘴遁了,直接上。第一步:构建一个消费者,添加相关的依赖。<dependency> <groupId>org.spr...原创 2019-07-18 08:55:07 · 201 阅读 · 0 评论 -
以案例聊聊SpringCloud分布式系统的架构者(八)
其实聊到这了,分布式系统也就是微服务架构也就差不多了。在实际的研发中用的也就是这些东西。那么整个的系统在日后的使用过程中慢慢的就会发现一个问题。这个问题我们看下图:上图中A系统中的A1服务需要调用B系统中的B1服务,但是我们可以看到B系统中的B1服务又调用着C系统中的C2服务。那么问题来了,如果A1在调用B1时发生了超时甚至链接不上,此时A1会想当然的认为B1的服务出现了问题,可是这样想当...原创 2019-07-18 13:46:25 · 215 阅读 · 0 评论 -
以案例聊聊SpringCloud分布式系统的架构者(五)
继续我们的SpringCloud架构,之前聊了聊SpringCloud中的一系列在分布式系统中关于服务注册、发现、路由、熔断等方面的问题,这些问题是分布式系统中常用的几种技术策略。他们共同的都是在注册中心要进行注册,这样一来就出现如果今后在某天负责注册的服务的宕机,那么就会导致整个分布式服务都变的不可用。这样整个系统的可靠性就不能保证。要想解决这个问题将系统的可靠性提高,这就变得很重要了。Spri...原创 2019-07-16 15:11:17 · 197 阅读 · 0 评论 -
以案例聊聊SpringCloud分布式系统的架构者
SpringCloud是Apache基金会下的项目,属于一个由老外写的一个基于SpringBoot分布式系统架构的技术框架。而Dubbo是我阿里写分布式系统架构的技术框架。这两种分布式微服务架构的技术,其实没有绝对的谁优谁劣,看自己公司的实际业务需求了。Dubbo的使用范围其实更多的像我们阿里的出去的用的更多,SpringColud的也有在用。SpringCloud里面自己实现了很多解决分布式方面...原创 2019-07-07 13:45:35 · 614 阅读 · 0 评论 -
SpringSecurity、Spring Social、SpringSession、TX-LCN、Spring Cloud Data Flow、JWT 架构(十二)
继续JWT。那么现在这一聊呢主要说一下JWT在分布式系统中的架构思路,先看下面的这个架构图:其实有了这个图,整个架构思路就有了。我们把JWT的这里一块单独拿出来做成一个服务,数据库方面为了防止单点故障可以配置数据库集群或者用redis做数据的存放和读取。...原创 2019-08-02 10:23:15 · 339 阅读 · 0 评论