Spring Cloud

这 17 个 JVM 参数,高级 Java 必须掌握!

青春壹個敷衍的年華 提交于 2020-08-05 05:12:45
作者:SimpleSmile https://www.cnblogs.com/Simple-Object/p/10272326.html 前言 大家都知道,jvm在启动的时候,会执行默认的一些参数。一般情况下,这些设置的默认参数应对一些平常的项目也够用了。 但是如果项目特别大了,需要增加一下堆内存的大小、或者是系统老是莫明的挂掉,想查看下gc日志来排查一下错误的原因,都需要咱们手动设置这些参数。 各个参数介绍 1.verbose:gc 表示,启动jvm的时候,输出jvm里面的gc信息。格式如下: \[Full GC 178K->99K(1984K), 0.0253877 secs\] 解读 :Full GC 就表示执行了一次Full GC的操作,178K 和99K 就表示执行GC前内存容量和执行GC后的内存容量。1984K就表示内存总容量。后面那个是执行本次GC所消耗的时间,单位是秒。 2.-XX:+printGC 这个打印的GC信息跟上个一样,就不做介绍了。 3.-XX:+PrintGCDetails 打印GC的详细信息。格式如下: –Heap – def new generation total 13824K, used 11223K \[0x27e80000, 0x28d80000, 0x28d80000) – eden space 12288K, 91% used \

java多线程中的死锁、活锁、饥饿、无锁都是什么鬼?

牧云@^-^@ 提交于 2020-08-05 04:59:13
死锁、活锁、饥饿是关于多线程是否活跃出现的运行阻塞障碍问题,如果线程出现了这三种情况,即线程不再活跃,不能再正常地执行下去了。 死锁 死锁是多线程中最差的一种情况,多个线程相互占用对方的资源的锁,而又相互等对方释放锁,此时若无外力干预,这些线程则一直处理阻塞的假死状态,形成死锁。 举个例子,A同学抢了B同学的钢笔,B同学抢了A同学的书,两个人都相互占用对方的东西,都在让对方先还给自己自己再还,这样一直争执下去等待对方还而又得不到解决,老师知道此事后就让他们相互还给对方,这样在外力的干预下他们才解决,当然这只是个例子没有老师他们也能很好解决,计算机不像人如果发现这种情况没有外力干预还是会一直阻塞下去的。 活锁 活锁这个概念大家应该很少有人听说或理解它的概念,而在多线程中这确实存在。活锁恰恰与死锁相反,死锁是大家都拿不到资源都占用着对方的资源,而活锁是拿到资源却又相互释放不执行。当多线程中出现了相互谦让,都主动将资源释放给别的线程使用,这样这个资源在多个线程之间跳动而又得不到执行,这就是活锁。 饥饿 我们知道多线程执行中有线程优先级这个东西,优先级高的线程能够插队并优先执行,这样如果优先级高的线程一直抢占优先级低线程的资源,导致低优先级线程无法得到执行,这就是饥饿。当然还有一种饥饿的情况,一个线程一直占着一个资源不放而导致其他线程得不到执行

留言板

[亡魂溺海] 提交于 2020-08-05 04:57:32
一个善于 C-V 编程的 城墟猿 , 正在 学习 Spring Cloud, 拥抱开源。 追求 实用 的 新 事物! 生命 应该 浪费 在 美好的 事物上 ! [ 免费开源软件 ] https://geekswg.lanzous.com/b01hj16vg [ 手机免费实用APP软件 ] https://geekswg.lanzous.com/b01hj1vch 密码:f93x [ PC实用破解软件 ] https://geekswg.lanzous.com/b01hj6pva 密码:3651 music: Take Me To Your Heart Johan Bejerholm编曲 迈克学摇滚 (Michael Learns To Rock) Take me to your heart Take me to your soul Give me your hand before I'm old Show me what love is haven't got a clue Show me that wonders can be true They say nothing lasts forever We're only here today Love is now or never Bring me far away 来源: oschina 链接: https://my

【问题】Could not locate PropertySource and the fail fast property is set, failing

青春壹個敷衍的年華 提交于 2020-08-05 04:03:09
这是我遇到的问题 Could not locate PropertySource and the fail fast property is set, failing springcloud的其他服务读取不了配置中心得配置文件出错,原因是配置中心的一个配置文件有svn冲突。配置中心启动不报错是因为配置中心没有用到这个文件吧。 其他服务读取该冲突文件就读取不了,所以报错,记录一下。 来源: oschina 链接: https://my.oschina.net/u/4267086/blog/4289942

使用Ocelot、IdentityServer4、Spring Cloud Eureka搭建微服务网关:Step by Step(一)

落爺英雄遲暮 提交于 2020-08-05 04:02:30
网上这部分的文章和资料很多,有一篇非常不错的文章(《 Net Core 基于Ocelot+IdentityServer4+Eureka的搭建高性能网关介绍 》),也介绍了这个内容,我也是参考了其中的某些步骤,一步一步演练下来,感觉.NET Core在微服务生态方面也是越来越成熟,功能也越来越强大。因此,我也撰写记录一下整个步骤,通过Step by Step的形式,加上一些注解,以及对于一些遇到的坑的描述,将整个实践过程记录下来,以便帮到有需要的读者,也为自己的学习做个记录。我不会再在概念性的问题上多费笔墨,比如什么是API网关、Ocelot、IdentityServer4、Eureka又是什么之类的问题,我不会做过多的说明,我会争取用最简单快捷的方式,将相关的实践内容描述清楚,虽然本文的标题后面加了一个“(一)”的字样,代表还会有后续的文章,因为我觉得一篇估计讲不完。 案例场景 在我之前写的《 .NET Core中Ocelot的使用 》系列文章中,我设计了一个场景,同时涉及了两个微服务的RESTful API,当时使用两个微服务,不仅是为了介绍API网关的主要功能,而且还引入了服务发现的内容,因此,使用两个微服务来演示会比较合理。当然,今天我们已经学习过API网关和服务发现的基本知识了,我就进一步将案例场景简化,我们只做一个API:Countries API,在这个API中

现在微服务这么火,你还不了解吗?阿里P8推荐的微服务学习指南

雨燕双飞 提交于 2020-08-05 02:59:53
前言 微服务体系的发展并不是一蹴而就的,经过了2014年前后的低潮期,微服务概念顶层的泡沫逐渐褪去,那些真正能够在企业落地的实践在一轮又一轮的大浪淘沙后被甄别、沉淀。在软件开发行业,微软服务正从一个流行术语转向实战战略。随着越来越多的企业开始采用微服务,行业内也累积了不少的经验教训。 什么是微服务架构呢? 简单说就是将一个完整的应用(单体应用) 按照一定的拆分规则(后文讲述)拆分成多个不同的服务,每个服务都能独立地进行开发、部署、扩展。服务于服务之间通过注入RESTful api或其他方式调用。 作为一个开发,微服务架构是不是和我关系不大?那不都是架构师的事吗? 微服务是当下最火热的后端架构之一。不管你是一个什么级别的程序员,也不论你在一个什么体量的公司,服务化都是你迟早会遇到的难题。实践微服务的过程本身也是一个升级打怪的过程,这中间你会遇到基本上所有后端架构的问题。解决了这些问题,你自然也就理解了那些高深的概念,也就成为了一名架构师,成长和能力提升都是这个过程的附属品。 并且,你了解微服务架构之后,能知道领导为什么让你这么做,也更容易站在系统角度思考公司技术的进程,这对于你的大局观构建来说非常有帮助。 再者,微服务这技术在面试的时候总有人提,尤其对于互联网大厂,微服务架构更是面试考核必备。 那么我们应该怎么学习微服务呢? 这里先来个劝退说明

Git 高级用法,喜欢就拿去用!

安稳与你 提交于 2020-08-05 01:49:42
如果你觉得 git 很迷惑人,那么这份小抄正是为你准备的! 请注意我有意跳过了 git commit 、 git pull/push 之类的基本命令,这份小抄的主题是 git 的一些「高级」用法。 导航 —— 跳到之前的分支 git checkout - 查看历史 # 每个提交在一行内显示 git log --oneline # 在所有提交日志中搜索包含「homepage」的提交 git log --all --grep='homepage' # 获取某人的提交日志 git log --author="Maxence" 哎呀:****之前重置了一个不想保留的提交,但是现在又想要回滚? # 获取所有操作历史 git reflog # 重置到相应提交 git reset HEAD@{4} # ……或者…… git reset --hard <提交的哈希值> 哎哟:****我把本地仓库搞得一团糟,应该怎么清理? git fetch origin git checkout master git reset --hard origin/master 查看我的分支和 master 的不同 git diff master..my-branch 定制提交 # 编辑上次提交 git commit --amend -m "更好的提交日志" # 在上次提交中附加一些内容,保持提交日志不变git add

Spring Cloud 配置变化监听

微笑、不失礼 提交于 2020-08-05 01:09:40
Spring Cloud 配置变化监听 背景 开发中遇到个需求,期望可以在配置变更的时候,监听配置的变化,做一些逻辑处理,原生ApplicationEvent已经有发出对应的配置更新事件,但是包含的是所有的变更,开发人员一般只关心自己需要的配置变更 原生事件发出EnvironmentChangeEvent(如spring cloud config)或RefreshEvent(nacos 最终也会发EnvironmentChangeEvent事件) 对此我们可以基于EnvironmentChangeEvent,最一层包装,封装我们自己需要的事件 使用 先看下效果,直接基于EventListener捕获ConfigRefreshEvent,condition使用el表达式配置需要监听的key,针对集合或map 可以使用正则匹配 @EventListener(condition = "#event.key eq 'sys.loglevel.root'") void handleConditionalListener(ConfigRefreshEvent event) { // 业务逻辑 balabala System.out.println("handleConditionalListener event key :" + event.getKey() + ", before :" +

ASP.NET Core中Ocelot的使用:基于服务发现的负载均衡

て烟熏妆下的殇ゞ 提交于 2020-08-04 23:27:57
本系列相关文章: 《ASP.NET Core中Ocelot的使用:API网关的应用》 《ASP.NET Core中Ocelot的使用:基于Spring Clound Netflix Eureka的动态路由》 本文将基于前两篇文章所述内容,继续介绍如何在服务发现和动态路由的基础上,使用Ocelot实现负载均衡。Ocelot本身是带有负载均衡功能的,这一点其实跟Nginx提供的 HTTP load balancer 是类似的功能(我觉得整个Ocelot提供的功能,通过Nginx也都可以实现,不过Ocelot更加.NET化,对于.NET开发人员来说更为简单和容易接受)。根据官方文档,Ocelot支持如下几种负载均衡策略: LeastConnection:根据服务当前正在处理的请求个数来决定将使用哪个服务来处理新接收到的请求,将请求转发给当前连接数最少的服务 RoundRobin:经典模式,轮询法,逐个选择可用的服务来处理接收到的请求 NoLoadBalancer:仅使用第一个可用的服务来处理接收到的请求 CookieStickySessions:通过使用Cookie,确保特定的请求能够被分配到特定的服务上进行处理 今天我们选择RoundRobin来看看如何基于服务发现来实现负载均衡。同样,首先需要对架构进行调整。 调整架构 与上文中的架构相比,这里不会引入新的服务

Java开发必知道的国外10大网站

此生再无相见时 提交于 2020-08-04 23:24:45
1、 https://www.google.com/ 不解释 2、 https://stackoverflow.com 里面包含各种开发遇到的问题及答案,质量比较高。 3、 https://github.com/ 免费的开源代码托管网站,包括了许多开源的项目及示例项目等。 4、 https://dzone.com/ 提供技术新闻、编程教程、及各种工具、开发者的博客等。 5、 http://www.programcreek.com/ 一个非常优秀的Java博客,包含很多精选文集。 6、 https://gitlab.com/ 免费代码托管网站,可以用来做私服,和GitHub最大区别是GitLab可以有私有项目。 7、 https://www.ibm.com/developerworks/learn/java/index.html IBM的JAVA开发者网站,很多干货。 8、 http://www.javaworld.com/ 一个不错的综合性的java网站。 9、 http://www.onjava.com/ 某位国外大神的网站。 10、 http://www.oracle.com/technetwork/java/index.html oracle java的官方网站。 推荐去我的博客阅读更多: 1. Java JVM、集合、多线程、新特性系列教程 2. Spring MVC