- 博客(44)
- 资源 (50)
- 收藏
- 关注
原创 SpringCloud之使用Zuul配合Swagger生成API文档
动态网关的搭建https://blog.csdn.net/kxj19980524/article/details/87867026在订单和会员服务上都引入swagger的依赖,配置文件加上扫包范围,然后controller里把需要写入api文档的方法上加上注解,最后在启动类上加上开启的注解就可以了,会员服务照做就可以了 <!-- swagger-spring-boot...
2019-02-23 11:23:05 983
原创 SpringCloud之使用Swagger生成微服务中API文档
随着微服务架构体系的发展和应用, 为了前后端能够更好的集成与对接,同时为了项目的方便交付,每个项目都需要提供相应的API文档。来源:PC端、微信端、H5端、移动端(安卓和IOS端) 传统的API文档编写存在以下几个痛点:对API文档进行更新的时候,需要通知前端开发人员,导致文档更新交流不及时;API接口返回信息不明确大公司中肯定会有专门文档服务器对接口文档进行更新。缺乏...
2019-02-23 10:22:08 4912
原创 SpringCloud之使用Nginx+Zuul实现网关的集群
这个是在动态网关基础上实现的https://blog.csdn.net/kxj19980524/article/details/87867026在公司中一般都是搭集群的,要么就是zuul一主一备,因为网关是统一入口如果单击版的话,网关一死直接瘫痪了.下面这个图就是让Nginx作为统一如果使用反向代理实现zuul的集群,其实下面这个图还需要加个Nginx一主一备.或者Nginx集群版就可以了....
2019-02-22 11:23:13 11145 17
原创 SpringCloud之ZuulGateway动态网关的搭建与使用
静态网关的搭建https://blog.csdn.net/kxj19980524/article/details/87802023动态网关的起因是因为如果要新添加服务的话,还需要重新添加配置文件再重新重启网关服务才可以,但一般项目上线总不能老是重启网关,所以需要搭建动态网关,不需要重启网关服务.实现原理就是配合分布式配置中心来搭建的,把网关的配置文件放到git上面然后动态读取,新添加服务的...
2019-02-21 19:52:27 2124
原创 Failed to load property source from location 'classpath:/application.yml
那是因为yml当中有中文注解但是idea的编码格式为utf-8解决方案
2019-02-21 19:20:28 883
原创 java.lang.AbstractMethodError: null
在使用springcloud的时候运行报这个错,原因是版本冲突导致的,在idea中创建springcloud项目的时候,这里默认是${spring-cloud.version},但是如果你使用的是高版本的springcloud的话还好,不会有什么问题,但是当你把parent版本下调到2.1.0以下的时候,再使用一些组件比如eureka的时候就会发现报错了,就算添加依赖的时候明确指出了组件的版本号,...
2019-02-21 14:59:34 35635 11
原创 SpringCloud之ZuulGateway网关的搭建与使用
为什么要使用网关?在微服务项目中,访问服务是需要验证是否登录的,比如支付服务之类的,如果每个服务都写一套验证的代码的话就会很重复,这时候就可以使用网关统一管理服务,客户端先访问网关,然后再转发到具体的服务上去,还有就是有的服务避免被直接访问,都是以内网的方式进行存在的,只能在项目中同一局域网进行访问,就可以使用暴露外网的网关统一管理服务作为统一入口.网关可以拦截客户端所有请求,对该请求...
2019-02-20 21:01:44 1825 1
原创 如何设计一套公司项目的接口,需要考虑什么问题?
开放接口:其它机构进行调用必须在外网进行访问,内部接口:一般只能在局域网中进行访问,服务与服务之间进行调用,为了是保证安全问题,外网不能之间访问.如何设计一套公司项目的接口,需要考虑什么问题?接口权限(开放接口|内部接口),考虑幂等性,安全性(Https)防止篡改数据(验证签名),使用网关拦截接口实现黑名单和白名单,接口使用http协议+json格式restful风格目的为了跨平台,底...
2019-02-20 20:03:27 429
原创 SpringCloud之分布式配置中心config的使用
在微服务中如果使用传统的方式管理配置文件的话,每个项目都有单独的存放配置文件的地方,管理起来非常复杂,如果生产环境配置文件,可能需要发生改变的时候,重新打war包,重新读取配置文件信息存放在jvm内存中.分布式配置中心就是在微服务中使用同一个服务器管理所有服务配置文件信息,能够实现后台管理.当服务器正在运行的时候,如果配置文件需要发生改变,可以实现不需要重启服务器实时更改配置文件信息.分布...
2019-02-19 10:40:45 657
原创 websocket注入HttpSession
我网上找了的办法就是使用springboot又继承重新方法,又写监听器啥的,我写完没好使,就自己想了个简单的办法在websocket中声明一个HttpSession在登录的controller方法中直接给它赋值进去就可以使用了 ...
2019-02-15 15:32:46 554 1
原创 遍历集合进行删除元素报错原因
如果在遍历集合的时候使用集合的方法进行修改集合的话会报错,如果使用迭代器的方法删除的话就不会报错.原因:增强for遍历底层也是迭代器,也不能在里面使用集合的方法进行增删元素,增强for是编译器认可,而不是虚拟机认可,在编译的时候会把增强for写成迭代器,迭代器中不能使用集合方法增删元素的原因:迭代器工作在一个独立的线程,拥有互斥锁,Iterator被创建后会指向原来对象的单链索引表,当原对象数...
2019-02-14 09:10:38 590
原创 使用Hystrix解决服务雪崩效应问题
什么是服务雪崩效应?在tomcat中是只有一个线程池的,线程池里面的线程数量有限,假设线程池里只有十个线程,看下图,在一个项目中,服务接口1里面的逻辑调用了服务接口2,现在有100个用户同时访问服务接口1,但是只有10个线程在运行,于是剩下的90个就一直在等待.但是服务接口1访问服务接口2,又抽不出身来执行它,就一直卡这不动了,这就是雪崩效应在微服务中Hystrix可以解决哪些问题?...
2019-02-11 19:11:35 924
原创 SpringCloud之使用Feign客户端来调用服务
SpringCloud之使用eureka实现服务注册与发现https://blog.csdn.net/kxj19980524/article/details/86774671在上面这个案例中进行修改首先在Order项目中添加feign客户端依赖,因为它是调用者<!--开启feign客户端--><dependency> <groupId>...
2019-02-11 11:49:06 2868
原创 SpringCloud使用consul调用服务失败java.lang.IllegalStateException: No instances available for consul-member
看这里https://blog.csdn.net/kxj19980524/article/details/86935415
2019-02-10 22:26:53 3464
原创 SpringCloud之使用consul实现服务注册与发现
windows启动consulhttps://blog.csdn.net/kxj19980524/article/details/86921479注意下面这个依赖里有个监控中心,必须导上这个包,不然调用不了服务,consul与别的注册中心不同,需要检验个健康值,所以需要导这个包,其余的地方就没什么差别了.<?xml version="1.0" encoding="UTF-8"?&g...
2019-02-10 22:24:30 3375 2
原创 windows启动consul
Consul简介Consul 是一套开源的分布式服务发现和配置管理系统,由 HashiCorp 公司用 Go 语言开发。它具有很多优点。包括: 基于 raft 协议,比较简洁; 支持健康检查, 同时支持 HTTP 和 DNS 协议 支持跨数据中心的 WAN 集群 提供图形界面 跨平台,支持 Linux、Mac、WindowsConsul 整合SpringCloud 学习网站:https...
2019-02-10 18:44:38 14973
原创 SpringCloud之使用Ribbon实现负载均衡
在SpringCloud中Ribbon负载均衡客户端,会从eureka注册中心服务器端上获取服务注册信息列表,缓存到jvm本地。导入SpringCloud模块就自动引入了ribbon了让后在本地实现轮训负载均衡策略。也就是当消费者调用服务的时候,通过服务注册时的名称去注册中心找到对应的地址,然后在本地通过httpclient进行远程调用这个服务.如果服务是集群形式的话会通过一个算法,总...
2019-02-10 18:30:03 227
原创 SpringCloud之使用Zookeeper作为注册中心
Linux下安装zookeeperhttps://blog.csdn.net/kxj19980524/article/details/84976240Windows下安装zookeeperhttps://blog.csdn.net/kxj19980524/article/details/86839830zookeeper图形化客户端工具ZooInspector的使用https://blog...
2019-02-09 22:48:30 1825
原创 zookeeper图形化客户端工具ZooInspector的使用
Windows下安装zookeeperhttps://blog.csdn.net/kxj19980524/article/details/86839830下载地址https://issues.apache.org/jira/secure/attachment/12436620/ZooInspector.zip解压后在build文件夹下双击这个jar包就可以启动了如果双击启动不了的话...
2019-02-09 21:46:53 3780 2
原创 Windows下安装zookeeper
下载地址https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/将 zoo_sample.cfg 改名为 zoo.cfg,因为 Zookeeper 在启动时会找这个文件作为默认配置文件。 tickTime:这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送...
2019-02-09 21:40:37 685
原创 SpringCloud之eureka自我保护机制
当第一次服务注册到eureka的时候,eureka就确定这个服务是存活的,当你把这个服务关闭后,你再看注册中心列表发现这个服务还在,这时候调用服务的时候就会报错,那这是为什么呢?原因就是其实在服务和注册中心之间一直会每隔一段时间发送心跳包,当注册中心突然收不到服务发的心跳包的时候,在90秒内(默认)没有重连的话就会剔除掉,但是万一只是服务与注册中心之间网络不通畅呢?这个服务并没有宕机呢?如果就...
2019-02-09 18:10:38 521 1
原创 SpringCloud之eureka集群的搭建即访问集群的方式
SpringCloud之服务注册与发现https://blog.csdn.net/kxj19980524/article/details/86774671搭集群前先看看上面的.其实eureka集群的搭建很简单,就是在一个eureka的基础上复制几份,然后它们之间互相注册,如下图.我现在有三个eureka注册中心,分别为8100,8200,8300,把它们搭建成集群只需要改配置文件,...
2019-02-09 16:54:59 1093
原创 SpringCloud之使用eureka实现服务注册与发现
在任何一个rpc远程调用框架中,都会有一个注册中心,它是用来存放管理服务(接口)地址的相关信息.即serviceid和地址信息.每个服务在启动都都会在注册中心,存上相关的信息,当消费者想调用服务者的时候就剩通过serviceid去注册中心获取地址信息来进行调用.每个服务既可以是消费者,也可以是服务者.在SpringCloud中支持Eureka,Consul(go语言编写的),Zoope...
2019-02-08 18:38:27 1220
原创 SpringCloud之服务消费者使用RestTemplate调用服务接口即负载均衡
SpringCloud之搭建eureka注册中心https://blog.csdn.net/kxj19980524/article/details/86775500SpringCloud之搭建服务提供者https://blog.csdn.net/kxj19980524/article/details/86775875<?xml version="1.0" encoding="UT...
2019-02-08 18:36:21 1592 7
原创 SpringCloud之搭建服务提供者
搭建注册中心https://blog.csdn.net/kxj19980524/article/details/86775500<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001...
2019-02-08 17:30:26 826
原创 SpringCloud之搭建eureka注册中心
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://mave...
2019-02-08 17:07:29 1310
原创 Win10提示无法连接到sens服务无限重启怎么办
如果电脑够快在重启时间范围内能操作完的话用以下解决办法方法一方法二在命令提示符窗口中输入命令netsh Winsock Reset Catalog,然后按下回车键就可以了方法三如果还没来得及操作就重启了的话长按电源键关机,来回三次按F4就可以进入安全模式了,进入后再打开命令窗口输入上面的命令就可以解决了...
2019-02-08 16:34:21 4550 12
原创 SpringCloud简介
网站架构的演变过程从传统架构(单点应用)--->分布式架构(以项目进行拆分)--->SOA架构(面向服务架构)---微服务架构传统架构其实就剩SSH或者SSM,属于单点应用,把整个业务模块都会在一个项目机进行开发,分为MVC架构,会拆分为,控制层,业务逻辑层,数据库访问层.这种开发模式只适合于一个人或小团队开发.缺点:耦合度太高,一旦某个模块导致服务不可用,可能会影响到...
2019-02-08 12:35:07 182
原创 Springboot使用AdminUi可视化监控中心
Springboot之监控中心Actuatorhttps://blog.csdn.net/kxj19980524/article/details/86760119它的原理就是把各个服务端的actuator的json数据发送给adminui来统一管理adminui-server服务端搭建创建服务端项目导入依赖<?xml version="1.0" encoding="UTF-...
2019-02-03 18:58:17 2917 1
原创 Springboot之监控中心Actuator
监控中心是针对微服务期间看,服务器内存变化(对内存,线程,日志管理等),检测服务配置连接池地址是否可用(模拟访问,懒加载),统计现在有多个bean(是Spring容器中的bean),统计SpringMVC@RequestMapping(统计http接口).使用Actuator来查看这些信息,它是没有界面的返回的是json格式的数据AdminUi底层使用的是Actuator实现的,只不过给它...
2019-02-03 17:57:26 977
原创 Springboot中使用jta+atomikos解决分布式事务
如何使用多数据源https://blog.csdn.net/kxj19980524/article/details/86751785首先分布式事务是基于多数据源的情况下解决在一个方法中调用不同的数据源,如何来进行事务管理的.在上面那节讲到了多数据源怎么使用事务,可以加注解指定哪个事务就可以了,但是分布式事务的话不可以.因为你一个方法只能有一个事务,方法里有不同的数据源,肯定不能指定某一个事...
2019-02-03 10:52:07 4183 6
原创 Springboot之使用分包方式拆分数据源,即一系列问题
在开发项目中可能遇到业务,对于不同的请求分别访问不同的数据库,这时该怎么解决呢先在配置文件中定义好两套不同的数据源,看好格式分为test1,test2两种,只要后面的这部分遵守规范就可以了.#springboot2.0改为这个了#spring.datasource.test2.jdbc-url = jdbc:mysql://localhost:3306/test02?useUnic...
2019-02-02 19:59:11 1127
原创 Springboot之区分不同环境配置文件
在正常开发中有下面三种配置文件环境,意思就是在不同阶段使用不同的配置文件,如果经常变动一个配置文件的话特别麻烦,那怎么办呢application-dev.properties:开发环境application-test.properties:测试环境application-prod.properties:生产环境首先创建上面三个配置文件,名称规范前面必须是主配置文件的名称后面加-再加...
2019-02-02 16:50:38 3675 2
原创 Springboot使用异步调用@Async
@Slf4j是lombok里面的一个注解用来生成Logger对象的,来打印log日志我写了一个userserviceimpl写了个controller方法,在不使用异步调用前,访问这个controller的结果就是1,2,3,4就是按部就班的执行,等到service的方法执行完成后才返回视图.那么异步调用是什么意思呢,用来干什么呢?比如在这个添加用户的操作里有个发送邮箱的功能,如果你这...
2019-02-02 16:23:02 352
原创 Springboot整合AOP实现log4j打印
创建log4j.properties放到resources下面#log4j.rootLogger=CONSOLE,info,error,DEBUGlog4j.rootLogger=info,error,CONSOLE,DEBUGlog4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender.CONS...
2019-02-02 13:40:49 644
原创 springboot整合freemarker
freemarker的使用https://blog.csdn.net/kxj19980524/article/details/86091602在springbootpom文件中引入freemarker模块<!--freemarker模块--><dependency> <groupId>org.springframework.boot<...
2019-02-02 11:29:16 178
原创 JDK1.5的新特性互斥锁
多线程(JDK1.5的新特性互斥锁)(掌握)* 1.同步 * 使用ReentrantLock类的lock()和unlock()方法进行同步* 2.通信 * 使用ReentrantLock类的newCondition()方法可以获取Condition对象 * 需要等待的时候使用Condition的await()方法, 唤醒的时候用signal()方法 * 不同的线...
2019-02-01 18:35:40 181
原创 java线程组的使用
Java中使用ThreadGroup来表示线程组,它可以对一批线程进行分类管理,Java允许程序直接对线程组进行控制。 * 默认情况下,所有的线程都属于主线程组。 * public final ThreadGroup getThreadGroup()//通过线程对象获取他所属于的组 * public final String getName()//通过线程组...
2019-02-01 18:24:20 436
原创 实现多线程的四种方式
Thread和Runnable区别* 查看源码的区别: * a.继承Thread : 由于子类重写了Thread类的run(), 当调用start()时, 直接找子类的run()方法 * b.实现Runnable : 构造函数中传入了Runnable的引用, 成员变量记住了它, start()调用run()方法时内部判断成员变量Runnable的引用是否为空, 不为空编译时看的...
2019-02-01 18:22:22 242
mysql-community-release-el6-5.noarch.zip
2019-06-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人