自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 收藏
  • 关注

原创 Reactor Netty (一)netty服务器配置启动流程封装设计源码解读

reactor-netty 简介在SpringCloud微服务体系中,有个很重要的组件就是网关,在2.x版本中SpringCloud自己研发了一个网关替代Zuul,那就是SpringCloud Gateway,而Gateway是支持WebFlux的函数式(流式)编程的,WebFlux是一个典型非阻塞异步的框架,它的核心是基于Reactor的相关API实现的。相对于传统的web框架来说,它可以运行在Netty上,并且SpringCloud Gateway 默认容器就是netty,但是netty本身并不支持

2020-12-14 17:33:20 2604

原创 Service Mesh Istio 从入门到放弃 (五) istio 网络安全

文章目录配置基于HTTP的授权配置TLS安全网关JWT鉴权配置基于HTTP的授权一般应用层面的业务服务都会基于http做各种请求get、post、put等方法的授权功能,这里做简单的演示1.由于前面已经部署好bookinfo服务,如果做过对reviews服务的路由配置,这里可以把它删除掉,这样堆reviews服务的访问就会轮询它下面的三个实例,分别展示红星、黑星和无星kubectl delete vs reviews2.接下来在default的namespace下创建一个拒绝所有请求的策略,可以

2020-09-11 16:22:01 706

原创 Service Mesh Istio 从入门到放弃 (四) istio 运维可观测性

Kiali 基于网格的管理控制台Kiali是一个基于服务网格的istio管理控制台,它提供了一些列的仪表盘和可观测能力,同时可以让你去操作网格的配置可以展示整个网格的网络拓扑和服务的健康状态提供了grafana的访问整合了jaeger的分布式追踪istio 安装包含了kiali,由于我的整套集群部署在本地虚拟机,只能通过nodePort 方式提供对外访问的能力,所以想访问kiali的控制台页面之前需要修改下它的service的配置,将默认的spec.type:ClusterIp 改为NodeP

2020-09-09 17:21:56 1169

原创 Service Mesh Istio 从入门到放弃 (三) istio 弹性保障

文章目录Request TimeoutsRetryCircuit BreakingFault InjectionMirroringRequest Timeouts超时是为了控制服务故障的范围,系统弹性防护的措施之一,为了模拟这个现象,接下来需要给demo应用做一些修改指定请求到reviews服务的v2版本,因为只有v2版本会调用ratings服务然后给ratings服务注入一个2s的延迟最后给请求reviews服务的路由加一个0.5s的超时1.指定请求到reviews服务为v2版本,这

2020-09-08 10:55:36 636

原创 Service Mesh Istio 从入门到放弃 (二) istio 流量管理

文章目录VirtualService && DestinationRuleVirtualServiceVirtualService 动态路由实践VirtualService 权重路由实践GatewayService EntryVirtualService && DestinationRuleVirtualService官方解释如下A VirtualService defines a set of traffic routing rules to apply when

2020-09-08 10:26:46 565

原创 Service Mesh Istio 从入门到放弃 (一) istio部署安装 && demo服务应用展示

文章目录安装&部署istio 1.5.1 安装demo 展示demo应用安装demo 应用介绍demo应用 访问安装&部署istio 1.5.1 安装首先要下载istio的安装包,默认会下载最新的版本,当前是1.7,由于我的k8s集群是1.5的版本它支持的istio是1.5.1,所以只能指定版本下载//下载安装包 默认下载最新版本curl -L https://istio.io/downloadIstio | sh -// 下载指定版本curl -L https://ist

2020-09-03 18:11:17 2105

原创 serverless深入浅出

serverless 基础什么是serverless ?伯克利大学的一篇论文Cloud Programming Simplified: A Berkeley View on Serverless Computing给出了如下定义:Serverless cloud computing handles virtually all the system administration operations needed to make it easier for programmers to use th

2020-09-02 10:48:17 291

原创 Kubernetes基于kubeadm1.15.0 解决证书过期

使用kubeadm安装集群默认证书的有效期是一年,过期后需要重新续期这套方法是在已经超过一年的有效期之后不得已采取的方法,最好还是在过期之前进行证书的续期在过期之前进行续期请参考官方文档https://kubernetes.io/zh/docs/tasks/administer-cluster/kubeadm/kubeadm-certs/首先查看证书是否有效:sudo openssl x509 -in /etc/kubernetes/pki/apiserver.crt -noout -text

2020-09-02 10:31:48 1660

原创 jmeter+grafana+influxdb 搭建压测监控平台

背景日常的版本迭代开发中,每当封版上线之前,项目组都会对当前开发后的整体系统进行稳定性、压力、回归等各种性能测试,他们的测试时间一般都会持续2-3天,在用jmeter进行测试后,由于生成的日志等请求信息会非常大,导致最后生成聚合报告失败,难以观察到 测试期间的系统各种表现,为了解决这个问题,通过今天这篇文章,我们通过搭建jmeter+grafana+influxdb 的监控平台,将jmeter实时产生的测试数据异步打入influxdb,数据库,最后我们可以通过grafana来聚合展示整个测试过程中我们想看

2020-09-02 10:17:59 2571 1

原创 JDK 1.8 HashMap扩容原理

扩容原理首先明确一下扩容以后所有node节点本质还是通过(n-1)&hash 得到索引,然后放入对应的node数组槽位中,但是jdk的开发者在这里使用了等价的计算方式加速了rehash的过程,将所有的node节点分成了需要移动和不需要移动两个链表,然后一次性移动到对应的位置上要明白这个等价的计算方式是什么,需要一个直观的对比就可以很容易的理解,假设map当前容量是n=16(n-1 对应的二进制是0000 1111) ,node的hash值的二进制是1010 0101,那么在扩容前node 的索

2020-06-30 18:57:40 908

原创 spring cloud之 apollo 基于k8s的微服务容器化落地实践

apollo简介Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。如果对apollo想要有详细的研究和理解,请参阅它的官方文档,本文后续的所有阐述都是基于你对apollo有一定理解的前题下,只对基于文章叙述的必要的概念做简要说明。其实官方也提供了...

2019-12-23 19:16:33 1433

原创 mac上透穿堡垒机器上传下载文件

安装工具brew install lrzsz安装iterm2https://www.iterm2.com添加脚本#!/usr/bin/env bash## iterm2-zmodem## copyright (c) 2013 by Harald Lapp <harald@octris.org>## AppleScript portion from:# ht...

2019-08-28 17:35:27 3027 3

原创 linux性能优化学习系列之uptime

定义每次执行uptime 都会显示如下信息root@user:~# uptime 20:54:13 up 428 days, 4:28, 7 users, load average: 0.00, 0.10, 0.55对于每个信息的展示 可以通过man uptime 查看到man uptimeUPTIME(1) ...

2019-07-13 22:34:05 303

原创 ubuntu 18.04 基于kubeadm 搭建kubernetes 1.15.0

1、添加国内镜像源以下操作都是基于root 用户vim /etc/apt/sources.listdeb http://mirrors.aliyun.com/ubuntu/ xenial main restricteddeb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricteddeb http://mirrors...

2019-06-25 12:01:18 2673 1

原创 spring-cloud-kubernetes 实践

起因公司这几天让调研这个开源项目,想了解下和我们自己的ci/cd有什么差异,从开始看官方文档到各种查资料,最后成功部署,踩了不少坑,由于网上对这个新项目的实操资料实在太少,我觉得还是有必要记录一下关于spring-cloud-kubernetesspring-cloud-kubernetes是springcloud官方推出的开源项目,用于将Spring Cloud和Spring Boot应用...

2019-06-14 18:14:27 1618 2

原创 leetcode 贪心算法相关

leetcode 贪心算法相关1.1 分糖果1.1 分糖果https://leetcode.com/problems/assign-cookies/class Solution { public int findContentChildren(int[] g, int[] s) { Arrays.sort(g); Arrays.sort(s);...

2019-01-13 19:54:07 255

原创 leetcode 栈、队列、堆相关

leetcode 栈、队列、堆相关1、使用队列实现栈2、用栈实现队列1、使用队列实现栈https://leetcode.com/problems/implement-stack-using-queues/class MyStack { private Queue&amp;amp;amp;amp;amp;amp;lt;Integer&amp;amp;amp;amp;amp;amp;gt; queue; /** Initialize your da

2019-01-07 23:43:41 207

原创 leetcode 链表系列

leetcode 链表系列1、 反转链表2、 链表中间段逆序3、 合并有序链表4、求两个链表的交叉点5、判断链表是否有环1、 反转链表https://leetcode.com/problems/reverse-linked-list/solution/Assume that we have linked list 1 → 2 → 3 → Ø, we would like to change ...

2018-12-30 22:57:33 214

原创 linux下shell编程总结

linux、shell、bash

2017-04-30 16:28:27 2813

原创 linux下软件的源码编译安装(以nginx源码安装为实例)

linux 源码安装 nginx

2017-04-29 16:14:56 426

原创 centos配置yum源

yum

2017-04-29 14:36:57 379

原创 linux下软件的rpm和yum安装

rpm、yum

2017-04-29 10:56:25 1005

原创 linux下常用文本处理命令

echo display a line of text格式:echo [SHORT/LONG-OPTION]… [STRING] echo "a b c d e f"结果为:a b c d e fcut remove sections from each line of files说白了就是切割字符串echo "a b c d e f" | cut -d" " -f1,2,3echo "a b

2017-04-27 22:33:53 466

原创 VI编辑器常用命令总结

概念vi:Visual Interface vim : VI iMproved 他们都是多模式编辑器,只不过vim是vi的升级版,对vi适用的命令,对vim也同样适用,以下我们适用vi来代表这两种编辑器。模式vi编辑器有三种模式:输入模式命令模式末行模式三种模式状态的切换:命令 -》输入i: 在当前光标所在字符的前面,转为输入模式a: 在当前光标所在字符的

2017-04-25 23:35:04 330

原创 linux虚拟机在NAT模式下连接外网并对其进行克隆

NAT模式下链接外网首先虚拟机的网络链接模式选为NAT模式查看宿主机下dhcp,net服务是否正常启动查看vmware为虚拟机统一提供的网关,这样我们在后续配置虚拟机ip时,保证ip和网关在同一网段下: 点击编辑–虚拟机网络编辑器: 若想要修改这个配置,需要以管理员身份点击下面的更改配置: 接着进行后续操作,选中VMnet8 ,点击NAT设置: 此时我们

2017-04-24 08:56:54 1134

原创 String相关学习

概念String在java中是对char数组的延伸和封装,它主要有三部分:char数组 偏移量 String长度 char数组表示String的内容 他是String对象所表示字符串的超集,String的真是内容还需要由偏移量和长度在这个char数组中进行定位和截取特点不变性 一个String对象一旦生成就不可改变,作用在于被多线程共享和访问时,省略同步和锁等待的时间,提高性能针对常量池

2017-04-09 17:01:39 368

转载 getResourceAsStream用法

第一:要加载的文件和.class文件在同一目录下,例如:com.ljq.test目录下有类ReflectTest.class,同时有资源文件config.properties23那么,应该有如下代码:4ReflectTest.class.getResourceAsStream("config.properties");56第二:在ReflectT

2015-09-11 10:56:17 386

原创 eclipseRCP深入浅出(学习总结)2015.08.25

1、public class AddContactAction extends Action implements ISelectionListener,ActionFactory.IWorkbenchAction { private final IWorkbenchWindow window; public static String ID = "com.eclipsercp.hyper

2015-08-25 23:48:31 712

原创 eclipseRCP深入浅出(学习总结)2015.08.24

chapter 6 1、 ApplicationWorkbenchWindowAdvisor中的preWindowOpen()方法可以设置顶级菜单可用://设置顶级菜单可用,但不设置可见    configurer.setShowMenuBar(true);2、只有给顶级菜单添加选项之后才可见,否则就是空的,显示不出来3、当创建一个RCP应用框架以后,他就生成了一个Acti

2015-08-24 23:51:31 510

原创 随想

自从毕业来北京工作有一个多月了,仍记得临毕业前的一段时间,每天都憧憬着自己拿到两个学位证书的时刻,憧憬着步入职场,努力工作的时刻,意淫支配着自己工作后的自由时间,一心想弥补着大学时的遗憾,多看点跟工作或者专业相关的书,提升自己的技术水平,和同事搞好关系,好好锻炼身体,充实度过每一天。现在想来,工作与上学完全就是两个不相干的状态,本以为和一帮大学的同学在同一个城市工作,会比较热闹,相互往来,不会孤单

2015-08-15 00:44:45 330

原创 eclipseRCP深入浅出(学习总结)2015.08.11

5.5 Adding Images  首先要把图片放到插件工程的icons的根目录下,接下来要通过代码引用到图片而不是直接记住图片在磁盘中的位置。标准的做法就是创建一个接口interface来记录图片的路径,接下来创建IImageKeys接口,其中的每一个静态常量都唯一表示一张图片在icons目录下的路径:public interface IImageKeys {public

2015-08-12 00:00:33 903 1

原创 eclipseRCP深入浅出(学习总结)2015.08.08

5.4.2 Content Providers OverviewTreeViewer需要ContentProvider实现ITreeContentProvider接口,这样Treeviewer才可以遍历input进去的对象的树形结构:public interface ITreeContentProvider extends IStructuredContentProvider

2015-08-11 23:59:10 537

原创 eclipseRCP深入浅出(学习总结)2015.08.05

2015.08.155.4 Filling in the Contacts View1、Workbench 创建Contacts view时调用createPartControl(Composite)方法         查看createPartControl这个方法的调用关系得知:它是接口IWorkbenchPart的抽象方法。public interface ISaveab

2015-08-05 23:49:34 651

转载 UML时序图

先来模拟一下三国演义的赤壁之战的时序图,先知道它到底长什么样子,再深入介绍: 小伙伴惊呆了,这样画战略图,一目了然,原来著名的战役是这么回事。这样看三国演义再也不会睡着了......再看看各个大人物的主要操作:代码模拟各任务操作: 1 public class 关羽 2 { 3 Public void 防守荊州(); 4 }

2015-08-05 22:26:26 331

转载 转载陈皓 酷壳 java程序员也应该看看

我相信,这可能是很多朋友的问题,我以前也有这样的感觉,编程编到一定的时候,发现能力到了瓶颈,既不深,也不扎实,半吊子。比如:你长期地使用Java和.NET ,这些有虚拟机的语言对于开发便利是便利,但是对于程序员来说可能并不太好,原因有两个:虚拟机屏蔽了操作系统的系统调用,以及很多底层机制。大量的封装好的类库也屏蔽了很多实现细节。一段时间后,你会发现你知其然,不知所以然。。我以前在C

2015-08-05 13:21:08 355

转载 程序员历练之路

建议:不要乱买书,不要乱追新技术新名词,基础的东西经过很长时间积累而且还会在未来至少10年通用。回顾一下历史,看看历史上时间线上技术的发展,你才能明白明天会是什么样。一定要动手,例子不管多么简单,建议至少自己手敲一遍看看是否理解了里头的细枝末节。一定要学会思考,思考为什么要这样,而不是那样。还要举一反三地思考。注:你也许会很奇怪为什么下面的东西很偏Unix/Linux,这是因为我觉

2015-07-27 22:15:28 473

转载 TransactionProxyFactoryBean代理事务

(转载别人的用于学习和记录)"1.0" encoding="GBK"?>    "-//SPRING//DTD BEAN 2.0//EN"      "http://www.springframework.org/dtd/spring-beans-2.0.dtd">                "dataSource" class="com.mchange.v2.

2015-05-20 14:11:00 386

转载 Spring 数据源配置与应用

(转载别人的,用于学习和日后查看)Spring对数据库操作都依赖数据源。Spring有默认的数据源实现org.springframework.jdbc.datasource.DriverManagerDataSource,但也可以配置其他的数据源实现,比如DBCP的数据源public class BasicDataSource  implements javax.sql.D

2015-05-20 11:12:58 279

转载 DispatcherServlet

(此文转载别人的,便于自己今后的学习和记录之用)DispatcherServlet作用DispatcherServlet是前端控制器设计模式的实现,提供Spring Web MVC的集中访问点,而且负责职责的分派,而且与Spring IoC容器无缝集成,从而可以获得Spring的所有好处。 具体请参考第二章的图2-1。 DispatcherServlet主要用作职责

2015-05-20 10:39:55 318

转载 用java构建完全二叉树

[java] view plaincopy//树结点类  public class TreeNode {     private int value;   private TreeNode leftchild;   private TreeNode rightchild;      public int getValue() {   

2015-05-04 21:38:25 782

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除