08 2019 档案

摘要:1, 生产者服务: maven: 定义队列,交换机,并且绑定队列和交换机,同时注入到spring 中 conifg 的上一层就是producer: service 发送消息服务: application.yml: 2,消费者服务: 邮件消费者: 信息消费者: application.yml 阅读全文
posted @ 2019-08-30 17:55 Chris,Cai 阅读(283) 评论(0) 推荐(0) 编辑
摘要:1,在之前的文章中介绍了RabbitMQ的五种队列形式 其中,在工作队列中,为了保证消费者的公平性,采用了channel.basicQos(1),保证了每次只发一条消息给消费者消费,并且使用手动签收的方式,消费完成,主动告知消息中间件,这样就可以发送下一条消息 这是对消费者而言的手动应答模式: 2, 阅读全文
posted @ 2019-08-30 13:49 Chris,Cai 阅读(666) 评论(0) 推荐(0) 编辑
摘要:1,扇形交换机 fanout 2, 直连交换机 direct 3, 通配符交换机 topic 阅读全文
posted @ 2019-08-29 15:54 Chris,Cai 阅读(239) 评论(0) 推荐(0) 编辑
摘要:1,什么是RabbitMq 百度百科 ,RabbitMQ 官网 AMQP 协议 2,几种MQ对比 RabbitMQ 是用Erlang 语言进行开发的,一款设计之初就是抗高并发的语言 3,RabbitMQ 安装 RabbitMQ 管理平台地址 http://127.0.0.1:15672 默认账号:g 阅读全文
posted @ 2019-08-28 14:46 Chris,Cai 阅读(756) 评论(0) 推荐(0) 编辑
摘要:1,ActiveMQ 2, ActiveMQ 的安装 3, 4,ActiveMQ JMS 规范 点对点通讯 producer: consumer: 5, ActiveMQ JMS 规范 发布订阅模式 producer: consumer: 6, ActiveMQ的持久化机制 默认是将消息存在内存中, 阅读全文
posted @ 2019-08-28 13:46 Chris,Cai 阅读(205) 评论(0) 推荐(0) 编辑
摘要:1,什么是消息中间件 在网络通讯中,http 协议默认采用的是同步的方式,也就意为者一个客户端发送请求,必须要等到服务器端处理完成,并且返回结果给客户端,客户端才能继续执行。 在网络延迟情况下,因为服务器端的不可达,客户端也会收到影响。 所以,为避免这种情况,就出现了消息中间件。就出现了面向消息的消 阅读全文
posted @ 2019-08-22 19:27 Chris,Cai 阅读(243) 评论(0) 推荐(0) 编辑
摘要:1,因为整个微服务会有好多服务,比如会员服务,支付服务,订单服务,每个服务都集成了swagger 我们在访问的时候,不可能每个服务输入一个url 去访问,看起来很麻烦,所以我们需要在一个页面上集成整个微服务项目中所有的 swagger 效果图:可以选择不同的应用,出来的是不同的swagger 接口文 阅读全文
posted @ 2019-08-22 17:41 Chris,Cai 阅读(6378) 评论(0) 推荐(0) 编辑
摘要:1,maven: 配置: service 接口: 启动类: 端口可以本地配置: http://localhost:8080/swagger-ui.html#/swagger-controller 阅读全文
posted @ 2019-08-22 16:13 Chris,Cai 阅读(686) 评论(0) 推荐(0) 编辑
摘要:1,实现的效果,就是zuul 网关的配置路由实现负载均衡,zuul 的配置文件放在springcloud config 上 2,需要的服务如下: 3,其实就是配置下springcloud-zuul 的配置,连接到springcloud-config maven:在原来的zuul 基础上,加上spri 阅读全文
posted @ 2019-08-22 14:57 Chris,Cai 阅读(1142) 评论(0) 推荐(0) 编辑
摘要:1,配置中心可以用zookeeper来实现,也可以用apllo 来实现,springcloud 也自带了配置中心config Apollo 实现分布式配置中心 zookeeper:实现分布式配置中心,主要是通过持久节点存储配置信息加上事件通知 Apollo:实现分布式配置中心,主要是通过mysql 阅读全文
posted @ 2019-08-21 15:43 Chris,Cai 阅读(2757) 评论(0) 推荐(0) 编辑
摘要:1,在这篇博文中,已经大致说过了Springcloud服务保护框架 Hystrix在服务隔离,服务降级,以及服务熔断中的使用 https://www.cnblogs.com/pickKnow/p/11250374.html 2,声明式的调用hystrix,也是很重要的,以及用整合feign 客户端 阅读全文
posted @ 2019-08-21 15:19 Chris,Cai 阅读(339) 评论(0) 推荐(0) 编辑
摘要:1,在上篇博文中,已经实现了feign 客户端来远程调用接口的功能,因为feign 客户端在springcloud 开发过程中是比较常用的方式 https://www.cnblogs.com/pickKnow/p/11385656.html 2,上一篇博文中的架构,比较简单,直接使用feign 客户 阅读全文
posted @ 2019-08-21 14:26 Chris,Cai 阅读(487) 评论(0) 推荐(0) 编辑
摘要:1,springcloud 中支持http调用的两种方式,RestTemplate,Feign客户端 2,Feign 客户端是一个声明式(注解方式)http 远程调用工具 3,实现方式如下: 第一步: 例如member 服务需要调用order 服务,采用feign 客户端调用的方式 member 服 阅读全文
posted @ 2019-08-20 21:05 Chris,Cai 阅读(3272) 评论(0) 推荐(0) 编辑
摘要:1,在之前的博文中,我通过eureka,consul,zookeeper 实现了注册中心,在实现的服务发现过程中,都是通过RstTemplate 来实现RPC 远程调用 RestTemplate 封装了Httpclient 技术,遵循http 协议,同时还依赖了Ribbon,所以,在将RestTem 阅读全文
posted @ 2019-08-20 19:14 Chris,Cai 阅读(982) 评论(0) 推荐(0) 编辑
摘要:1,nginx 是服务器端的负载均衡器,所有请求发送到nginx之后,nginx通过反向代理的功能分发到不同的服务器,做负载均衡 2,ribbon是客户端的负载均衡器,他是通过将eureka注册中心上的服务,读取下来,缓存在本地,本地通过轮询算法,实现客户端的负载均衡 阅读全文
posted @ 2019-08-20 17:48 Chris,Cai 阅读(1624) 评论(0) 推荐(0) 编辑
摘要:ookeeper与Eureka区别 CPA理论:一个分布式系统不可能同时满足C(一致性)、A(可用性)和P(分区容错性)。由于分区容错性在是分布式系统中必须要保证的,因此我们只能在A和C之间进行权衡。在此Zookeeper保证的是CP, 而Eureka则是AP。 Consistency(一致性), 阅读全文
posted @ 2019-08-20 17:41 Chris,Cai 阅读(3345) 评论(0) 推荐(1) 编辑
摘要:1,consul也可以替代Eureka实现注册和发现的功能,即注册中心。 之前在linux环境通过consul + upsync + nginx 实现nginx 的动态负载均衡 https://www.cnblogs.com/pickKnow/p/11227804.html 2,consul 实现注 阅读全文
posted @ 2019-08-20 17:34 Chris,Cai 阅读(272) 评论(0) 推荐(0) 编辑
摘要:1,Eureka 闭源了,但是我们可以通过zookeeper实现注册中心的功能。 zookeeper 是一个分布式协调工具,可以实现服务的注册和发现,配置中心,注册中心,消息中间件的功能 2,工具准备 windows 版本的zookeeper-3.3.6,以及客户端查看工具ZooInspector 阅读全文
posted @ 2019-08-20 16:41 Chris,Cai 阅读(1144) 评论(0) 推荐(0) 编辑
摘要:1,Eureka 自我保护机制 Eureka注册中心,一些服务会注册到Eureka 服务器上,例如之前的member服务,order服务。 在网络不通的情况下,如果一个bmember 挂了,但是Eureka注册中心并不会立即将这个服务剔除,还在注册中心上显示出来。会被认为这个服务还可用。 因此需要E 阅读全文
posted @ 2019-08-20 15:28 Chris,Cai 阅读(394) 评论(0) 推荐(0) 编辑
摘要:1,Eureka作为注册中心,掌管者服务治理的功能,十分重要,如果注册中心的服务一旦宕机,所有的服务就会挂了,为此,实现注册中心的集群(高可用)就显得十分必要了 2,Eureka 搭建集群 实现原理就是注册中心的相互注册,实现集群。 例子: 有两个Eureka服务,分别为eureka和eureka_ 阅读全文
posted @ 2019-08-20 13:18 Chris,Cai 阅读(286) 评论(0) 推荐(0) 编辑
摘要:1,什么叫做服务的注册与发现 服务的注册与发现基于注册中心,注册中心本身是一个服务,也相当于一个载体,其他服务的注册需要注册到这个注册中心上。 注册:当服务器启动的时候,会将自己的服务器信息,通过别名的形式注册到之前已经启动的注册中心上面 发现:在注册中心上面注册的服务,由注册中心共同管理,以该别名 阅读全文
posted @ 2019-08-20 11:05 Chris,Cai 阅读(357) 评论(0) 推荐(0) 编辑
摘要:1,传统的三层架构 在传统的架构中,SSH,SSM,主要分为web 控制层,业务逻辑层,数据库访问层,单点项目,项目没有拆分,所有的开发任务全部写在一个项目中,耦合度比价高,如果程序中的一个功能出现了问题,所导致的就是整个服务挂掉。 2,SOA 架构 因为传统项目的耦合度比较高,所以架构的发展逐步面 阅读全文
posted @ 2019-08-19 16:19 Chris,Cai 阅读(2367) 评论(0) 推荐(1) 编辑
摘要:1,实现方式不同 zookeeper实现分布式锁:通过创建一个临时节点,创建的成功节点的服务则抢占到分布式锁,可做业务逻辑。当业务逻辑完成,连接中断,节点消失,继续下一轮的锁的抢占。 redis实现分布式锁:是通过setnx命令在redis服务里面创建一个指定key,成功返回1,失败返回0,key 阅读全文
posted @ 2019-08-19 13:30 Chris,Cai 阅读(602) 评论(0) 推荐(0) 编辑
摘要:1,分布式锁的应用场景之前在zookeeper 的已经说过了,zookpper 的实现方式如下 https://www.cnblogs.com/pickKnow/p/11338579.html 2,基于redis 实现分布式锁 了解set 和 setnx 命令的不同: set:往数据库里面插入值,成 阅读全文
posted @ 2019-08-15 14:34 Chris,Cai 阅读(181) 评论(0) 推荐(0) 编辑
摘要:1,检查有没有旧的版本 2,删除 3, msyql 官网 下载中心 找到 DOWNLOADS , 点击Yum Repository 找到yun 源版本,可以直接下载,也可以用命令下载 4,cd /usr/local mkdir mysql ,我是将mysql 下载放在这个路径下面 5,安装 6,检查 阅读全文
posted @ 2019-08-15 09:55 Chris,Cai 阅读(163) 评论(0) 推荐(0) 编辑
摘要:1,什么是分布式配置中心 项目中配置文件比较繁杂,而且不同环境的不同配置修改相对频繁,每次发布都需要对应修改配置,如果配置出现错误,需要重新打包发布,时间成本较高,因此需要做统一的分布式注册中心,能做到自动更新配置文件信息,解决以上问题 常用分布式配置中心框架 Disconf(依赖于zookpeer 阅读全文
posted @ 2019-08-14 11:42 Chris,Cai 阅读(2307) 评论(0) 推荐(0) 编辑
摘要:1,在工作中,经常会涉及到定时任务,那么定时任务的实现方式有哪些? 实现方式1:Thread类下通过sleep方法来实现定时任务的效果 缺点:过于简单,只能实现很简单的定时任务的逻辑,不够灵活 实现方式二:通过TimerTask 来实现 逻辑比较简单,只能实现简单的功能 实现方式三:Schedule 阅读全文
posted @ 2019-08-13 16:20 Chris,Cai 阅读(1429) 评论(0) 推荐(0) 编辑
摘要:Zookeeper集群选举策略 Zookeeper集群选举原理Zookeeper的角色 1.领导者(leader),负责进行投票的发起和决议,更新系统状态2.学习者(learner),包括跟随者(follower)和观察者(observer),follower用于接受客户端请求并想客户端返回结果,在 阅读全文
posted @ 2019-08-13 14:38 Chris,Cai 阅读(141) 评论(0) 推荐(0) 编辑
摘要:1,什么是网站跨域 两个项目中之间的相互通讯,如果通过ajax 去访问,如果访问的域名和自己服务的域名不一致,浏览器会认为有安全问题,无法获取到返回结果 2,模拟网站跨域 (1)模拟域名 在 C:\Windows\System32\drivers\etc\hosts (2) crossdomain_ 阅读全文
posted @ 2019-08-13 14:29 Chris,Cai 阅读(520) 评论(0) 推荐(0) 编辑
摘要:1,master选举使用场景及结构 现在很多时候我们的服务需要7*24小时工作,假如一台机器挂了,我们希望能有其它机器顶替它继续工作。此类问题现在多采用master-salve模式,也就是常说的主从模式,正常情况下主机提供服务,备机负责监听主机状态,当主机异常时,可以自动切换到备机继续提供服务(这里 阅读全文
posted @ 2019-08-12 17:38 Chris,Cai 阅读(1536) 评论(0) 推荐(0) 编辑
摘要:1,什么是session session 是客户端与服务器通讯会话技术,比如用户登陆,会将登陆之后,将用户信息存入在session中 2,session 的原理 3,简单的session 例子 服务器端创建了一个session,sessionid 是 cdd51f6c-e2ab-490b-a4f8- 阅读全文
posted @ 2019-08-12 13:53 Chris,Cai 阅读(434) 评论(0) 推荐(0) 编辑
摘要:1,为什么需要分布式锁 在分布式集群环境中,多个程序同时在跑,就存在多个线程对同一个资源的共享并且操作问题。因此会存在线程安全问题。 2,在单个JVM 程序中,存在线程安全问题的时候,我们一般可以用synchronized 同步代码块,或者使用Lock 锁等方式,使得在多线程环境下,同一时刻只能由一 阅读全文
posted @ 2019-08-12 11:12 Chris,Cai 阅读(263) 评论(0) 推荐(0) 编辑
摘要:1,原理 将启动的服务注册到zookeeper 注册中心上面,采用临时节点,zookeeper 客户端从注册中心上读取服务的信息,之后再本地采用负载均衡算法(取模算法),将请求轮询到每个服务。 同时zookeeper 客户端有监听节点的功能,当临时节点的服务中断之后,更新注册中心上的服务的信息。将终 阅读全文
posted @ 2019-08-12 09:43 Chris,Cai 阅读(274) 评论(0) 推荐(0) 编辑
摘要:什么是Watcher接口同一个事件类型在不同的通知状态中代表的含义有所不同,下图列举了常见的通知状态和事件类型。 Watcher通知状态与事件类型一览 上图列举了ZooKeeper中最常见的几个通知状态和事件类型。回调方法process()process方法是Watcher接口中的一个回调方法,当Z 阅读全文
posted @ 2019-08-07 16:36 Chris,Cai 阅读(407) 评论(0) 推荐(0) 编辑
摘要:1,windows 下的zookeeper 单机启动,双击就可以启动了,路径必须是英文路径,启动之后 启动完成,如下图,默认端口2181 2,windows 下的图形化工具,连接zookeeper的客户端 双击打开: 可以在客户端增添节点 3,通过java 代码操作zookeeper 阅读全文
posted @ 2019-08-07 16:09 Chris,Cai 阅读(462) 评论(0) 推荐(0) 编辑
摘要:什么是ZookeeperZookeeper是一个分布式开源框架,提供了协调分布式应用的基本服务,它向外部应用暴露一组通用服务——分布式同步(Distributed Synchronization)、命名服务(Naming Service)、集群维护(Group Maintenance)等,简化分布式 阅读全文
posted @ 2019-08-07 15:09 Chris,Cai 阅读(291) 评论(0) 推荐(0) 编辑
摘要:1,什么叫缓存雪崩 由于缓存失效,大量的访问直接去访问数据库,对数据库和CPU造成巨大的压力,严重的会造成数据库的宕机,系统崩溃。 2,如何防止缓存雪崩 1,缓存雪崩造成的直接原因,是由于同一时刻大量的缓存同时失效,所以大量的访问可能都没有从缓存中获得数据,从而访问数据库了。 可以让不同的key,设 阅读全文
posted @ 2019-08-07 13:23 Chris,Cai 阅读(147) 评论(0) 推荐(0) 编辑
摘要:1集群方案 1.官方方案redis-cluster搭建实战 2.客户端分片技术(不推荐),扩容/缩容时,必须手动调整分片程序,出现故障不能自动转移 3.可以使用主从复制方式(不推荐) 4.使用一些代理工具 我们知道主从复制方式实现集群,性能不是很好,因为只有一个master,其他都是slave,sl 阅读全文
posted @ 2019-08-07 10:36 Chris,Cai 阅读(229) 评论(0) 推荐(0) 编辑
摘要:1,了解数据存储的位置的不同 数据库:存储在磁盘上 redis:存储在内存上 ehcache:应用内缓存 缓存的目的:是为了将数据从一个较慢的介质上读取出来,放到一个较快的介质上,为了下次读取的时候更加的快。 数据存入在书库库中,每次获取数据都有IO交互,所以放入到Redis中。Redis 存放数据 阅读全文
posted @ 2019-08-06 18:11 Chris,Cai 阅读(1522) 评论(0) 推荐(0) 编辑
摘要:1,Redis事务: Redis 事务可以一次执行多个命令, 并且带有以下两个重要的保证: 事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。 事务是一个原子操作:事务中的命令要么全部被执行,要么全部都不执行。 一个事务从 阅读全文
posted @ 2019-08-06 15:27 Chris,Cai 阅读(163) 评论(0) 推荐(0) 编辑
摘要:Redis持久化,就是将内存数据保存到硬盘。 Redis持久化存储支持两种模式(AOF模式,RDB模式) RDB模式: RDB 是以二进制文件,是在某个时间 点将数据写入一个临时文件,持久化结束后,用这个临时文件替换上次持久化的文件,达到数据恢复。优点:使用单独子进程来进行持久化,主进程不会进行任何 阅读全文
posted @ 2019-08-06 14:58 Chris,Cai 阅读(159) 评论(0) 推荐(0) 编辑
摘要:1,什么是redis 主从复制 支持多个数据库之间的数据同步。只能一个主数据库(master),可以一个或者多个从数据库(slave) 主数据库,可以读写 从数据库,只可以读 当主数据库,做写的操作的时候,写完,redis会从给数据库发送信号,并将数据信息发送给从数据库,从数据库备份。 2,当主数据 阅读全文
posted @ 2019-08-02 23:03 Chris,Cai 阅读(658) 评论(0) 推荐(0) 编辑
摘要:1,相当于消息系统,ActiveMQ,RocketMQ等工具类似,但是个人觉得简单用一下还行,如果对于数据一致性要求高的话还是用RocketMQ等专业系统 2, 3,客户端A 客户端B 阅读全文
posted @ 2019-08-02 20:59 Chris,Cai 阅读(124) 评论(0) 推荐(0) 编辑
摘要:1,Redis 概念 Redis是由意大利人Salvatore Sanfilippo(网名:antirez)开发的一款内存高速缓存数据库。Redis全称为:Remote Dictionary Server(远程数据服务),该软件使用C语言编写,Redis是一个key-value存储系统,它支持丰富的 阅读全文
posted @ 2019-08-02 20:11 Chris,Cai 阅读(184) 评论(0) 推荐(0) 编辑
摘要:1, 项目实在springboot 集成mybatis 的基础上的: https://www.cnblogs.com/pickKnow/p/11189729.html 2,pom 如下,有的不需要加,只需要加下ehcache 相关就行 3,需要缓存的方法上加上注解 4,启动类上加上读取缓存 5,设置 阅读全文
posted @ 2019-08-02 19:16 Chris,Cai 阅读(331) 评论(0) 推荐(0) 编辑
摘要:1,什么是Ehcache Ehcache是纯java的开源缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。它主要面向通用缓存、Java EE和轻量级容器,具有内存和磁盘存储、缓存加载器、缓存扩展、缓存异常处理程序。 Ehcache最初由Greg Luck于20 阅读全文
posted @ 2019-08-02 16:24 Chris,Cai 阅读(501) 评论(0) 推荐(0) 编辑
摘要:1,Https 协议,超文本安全传输协议,通俗的说就是更加安全的http协议。因为http 协议是明文的,所以不安全,容易被抓包工具抓包,篡改数据 2,Https 协议,Http + SSL SSL:安全套接字(Secure Socket Layer,SSL)协议是Web浏览器与Web服务器之间安全 阅读全文
posted @ 2019-08-01 19:02 Chris,Cai 阅读(587) 评论(0) 推荐(0) 编辑
摘要:200 请求成功 304 从缓存中读取 302 + 响应头中定义location: 重定向 阅读全文
posted @ 2019-08-01 18:02 Chris,Cai 阅读(167) 评论(0) 推荐(0) 编辑
摘要:1,https://github.com/Netflix/zuul zuul 网关文档 2,什么是网关 网关就是客户端进行访问的时候,先经过网关服务器,再由网关服务器进行转发到真实的服务器。类似于Nginx Nginx也可以搭建网关,但是由于Nginx是C语言开发的,在网关上添加一些功能比较麻烦。 阅读全文
posted @ 2019-08-01 17:35 Chris,Cai 阅读(331) 评论(0) 推荐(0) 编辑
摘要:1,网关 网关(Gateway)就是一个网络连接到另一个网络的“关口”。 在Nginx 配置负载均衡之后,可以进入到网关,在网关决定进入到哪个真实的web 服务器。 2,将Ngnix 配置 API 网关 通过拦截url 请求,如果是project-a 就走http://127.0.0.1:8000/ 阅读全文
posted @ 2019-08-01 11:37 Chris,Cai 阅读(9190) 评论(0) 推荐(0) 编辑
摘要:1,案例 1 分钱买带电脑。购买电脑,在调用支付接口之前,利用类似Fiddler等抓包工具,定位到支付接口,将参数(金额)修改为0.01元。结果是:电脑购买成功,一个月之后成功入狱。 2,怎么避免让别人用抓包工具修改参数呢? 基于token 方式隐藏参数。 3,代码实现 阅读全文
posted @ 2019-08-01 11:11 Chris,Cai 阅读(5268) 评论(1) 推荐(0) 编辑
摘要:1,非对称加密: 会生成一对密钥,公钥和私钥,公钥可以加密解密,私钥也可以加密解密 2,过程: 3,优点:难破解 缺点: 加密速度慢 常用算法: RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法) 阅读全文
posted @ 2019-08-01 10:06 Chris,Cai 阅读(386) 评论(0) 推荐(0) 编辑
摘要:1,对称加密 对称密码技术:发件人和收件人使用其共同拥有的单个密钥 ,这种密钥既用于加密,也用于解密,叫做机密密钥(也称为对称密钥或会话密钥)。 2,常见的对称式加密技术 DES(数据加密标准):分组式加密,算法源于Lucifer,作为NIST对称式加密标准;64位(有效位56位、校验8位),分组算 阅读全文
posted @ 2019-08-01 09:33 Chris,Cai 阅读(961) 评论(0) 推荐(0) 编辑
摘要:单向散列函数一般用于产生消息摘要,密钥加密等,常见的有:1、MD5(Message Digest Algorithm 5):是RSA数据安全公司开发的一种单向散列算法,非可逆,相同的明文产生相同的密文。2、SHA(Secure Hash Algorithm):可以对任意长度的数据运算生成一个160位 阅读全文
posted @ 2019-08-01 09:23 Chris,Cai 阅读(394) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示