自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

江宁山人的专栏

偏市场的技术型管理

  • 博客(54)
  • 资源 (13)
  • 收藏
  • 关注

原创 线程间交换数据-互联网区与内网区通过DB交换数据的实现

2套系统仅允许连接同一个生产数据库,但是由于外网区限制较多,主要是安全的原因,很多应用无法部署在外网区,因此如果在外网区仅部署一个接受用户请求的应用,将用户的请求写到DB,待内网区响应后,再返回个用户那么也能满足使用要求,数据流如下图所示。综上所述,涉及到主线程、等待响应的子线程、定时任务线程3个线程之间的交换数据、阻塞等待通知、唤醒机制。3、因为主线程需要阻塞,直到内网区有响应再返回,则需要开启另一个线程异步去等待内网区结果,如果有结果了,该异步线程需要理解获得通知,再获取到结果后,返回到主线程。

2024-03-22 11:35:03 298 1

原创 windows机器上安装mysql

2.1 windows的 mysql默认的data目录在C:\ProgramData\MySQL\MySQL Server 8.0\Data下。2.0 首先停止mysql(任务管理器-详细信息-随便找个进程右击进入转入服务,找到MySQL服务,点击停止)2.4 进入 C:\ProgramData\MySQL\MySQL Server 8.0 目录。2.3 右击D:\mysql\Data 属性,进入安全,点击编辑,添加。2.2 拷贝Data文件到D:\mysql\Data。4、修改root 允许远程访问。

2024-01-04 17:17:43 731

原创 java使用skywalking

启动命令:

2023-07-29 09:40:50 214

原创 使用javassist动态修改非spring管理的对象

【代码】使用javassist动态修改非spring管理的对象。

2023-07-12 15:14:52 145

原创 docker安装jira,mysql等

0、安装数据库(发现使用高版本的比如mysql8.0,不能兼容该版本的jira)1、创建数据库及用户(mysql8.0)2、安装jira,端口9110,寓意美好。3、下载文件(需要墙)MAC电脑M1芯片下。四、安装redids。

2023-05-30 13:38:18 481

原创 Jenkins使用k8s部署应用

3.3.3、宿主机一般都是被K8S控制的Node,因此一般都装有kubernets,因此可以把kubectl命令关在到POD中,使得POD具备执行kubectl命令能力,以控制K8S。在POD容器列表中放了2个Docker镜像,一个是Maven负责java的build,一个是jnlp创建一个jenkins的slave。3.3.2、宿主机上安装了docker,把docker命令挂载到K8S的POD内,使得POD具备了。目的是在jenkins构建的时候,可以自动在K8S内创建一个POD服务于本次构建。

2023-05-17 19:17:10 5154

原创 K8S部署redis三主三从标准集群

当我们把redis以pod的形式部署在k8s中时,每个pod里缓存的数据都是不一样的,而且pod的IP是会随时变化,这时候如果使用普通的deployment和service来部署redis-cluster就会出现很多问题,因此需要改用StatefulSet + Headless Service来解决。相应的,在k8s的dns映射里,Headless Service的解析结果不是一个Cluster IP,而是它所关联的所有Pod的IP列表。中的4.2 构建能自动分配PV的storageClass 章节。

2023-04-20 16:57:07 1222

原创 K8S使用持久化卷存储到NFS(NAS盘)

Persistent Volumes:PV是持久化卷,系统管理员设置的存储,它是群集的一部分,是一种资源,所以它有独立于Pod的生命周期Persistent Volume Claim:PVC是用户存储的请求。它与Pod相似,Pod消耗节点的CPU和内存资源,PVC则消耗PV资源,可以声明特定的容量大小和访问模式。

2023-04-19 16:06:23 3614

原创 K8S实战(部署java应用、mysql、nacos集群)

kubectl create namespace zo-dev #创建名字为zo-dev的命名空间kubectl delete namespace zo-dev #删除名字为zo-dev的命名空间,删除命名空间时候其下的所有资源会被一并删除kubectl get namespace # 查看有哪些命名空间kubectl describe namespace zo-dev # 查看名字为zo-dev空间的相关信息。

2023-04-14 18:25:59 1187

原创 centeros安装docker Community版

ECS上您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器。4、部署完docker后,必须先手动登录下,否则后续拉取不了镜像,这里是VPC网络下的地址。[email protected] 密码xxxxx。删除已安装的企业版本docker。2、安装并运行Docker,4、设置docker开机启动。1.删除所有已经停止的容器。二、docker常用命令。可以指定版的社区版见3。安装ce版本需要修改为。

2023-04-12 16:19:30 627

原创 安装k8s的dashboard

然后执行kubectlapply-f$HOME/.kube/kubernetes-dashboard.yaml。将如下代码拷贝到k8s的master节点的$HOME/.kube目录下。命名为kubernetes-dashboard.yaml。dashboard2.5.1版本。k8s1.23.6版本。

2022-07-16 14:46:59 417

原创 calico文件

k8s的网络插件,可以使用下面的,镜像可以自己修改。

2022-07-16 14:02:42 587

原创 kube-flannel文件,拷贝后命名为kube-flannel.yml

代码】kube-flannel文件。

2022-07-16 14:00:49 365

原创 K8S在centeros中的部署

参考文章:CenterOS7.9安装K8S过程01、如安装过程中出错,可以把整个K8S删除掉,命令如下:02、删除已安装的docker可以使用命令如下:二、正式开始部署: 00、准备3台centeros机器,每台机器上都安装docker,此处略过。 01、准备3台centeros机器,并分别设置hostname:02、查看3台机器的ip,3台机器上都配置hosts文件,因k8s是依据hostname进行通信的。03、每台机器上关闭防火墙并禁止使用swap交换,拷贝出来逐条执行

2022-07-15 18:01:48 696

原创 nginx ssl及http自动跳转到https配置

1、nginx ssl及http自动跳转到https配置nginx 1.18.0版本如下:server { server_name www.xxxx.com xxxx.com; listen 443 ssl http2; ssl_certificate /home/cert/xxxx.pem; ssl_certificate_key /home/cert/xxxx.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TL...

2021-03-10 14:10:40 1670

原创 扫描某机器占用的端口

一、安装nmapyum install nmap -y二、使用nmapnmap localhost #查看主机当前开放的端口 nmap -p 1024-65535 localhost#查看主机端口(1024-65535)中开放的端口 nmap -PS 192.168.21.163 #探测目标主机开放的端口 nmap -PS22,80,3306 192.168.21.163 #探测所列出的目标主机端口 ...

2020-07-14 10:56:37 184

原创 连接数据库报错 is blocked because of many connection errors; unblock with ‘mysqladminlush-hosts

is blocked because of many connection errors; unblock with 'mysqladminlush-hosts本质原因是因为同一个IP在短时间内产生太多中断的数据库连接,超过max_connect_errors的最大值导致的。官方解释:如果MySQL服务器连续接收到了来自于同一个主机的请求,而且这些连续的请求全部都没有成功的建立连接就被中断了,当这些连续的请求的累计值大于max_connect_errors的设定值时,MySQL服务器就会阻.

2020-07-07 22:11:17 6487

原创 通过docker镜像方式添加dubbo管理器

1、docker search dubbo-admin 这一步可不执行,只是看下目前dubbo管理有哪些docker2、docker pull docker.io/chenchuxin/dubbo-admin 拉取镜像3、部署docker run --restart=always -d -p 43210:8080 -e dubbo.registry.address=zookeeper://192.168.3.39:2181 -e dubbo.admin.root.pa...

2020-07-07 16:52:41 208

原创 使用阿里云镜像在docker容器内添加vim命令

# 通过阿里云源安装vim命令RUN mv /etc/apt/sources.list /etc/apt/sources.list.bakRUN echo "deb http://mirrors.aliyun.com/debian/ buster main non-free contrib">>/etc/apt/sources.listRUN echo "deb-src http://mirrors.aliyun.com/debian/ buster main non-free con.

2020-06-28 16:06:27 632

原创 mac系统sourceTree链接阿里云code

1、安装好git和sourceTree.2、本机生产公钥私钥git config --global user.name "ABC"git config --global user.email "[email protected]"3、ssh-keygen -t rsa -C "[email protected]"此时直接敲3个回车4、ls -al ~/.ssh可以看到生成了文件total ...

2020-01-09 01:05:01 2053 2

原创 多网卡下获取本机IP的方式。

多网卡下获取本机IP的方式。方式一:public class NetworkUtils { public static final String localHostIp = "127.0.0.1"; public static final String LOCALHOST = "localhost"; public static String currentI...

2020-01-07 14:44:48 1059

原创 读取resource目录下的文件的几种方式

一、通常可以使用URL fileUrl = HotItems.class.getClassLoader().getResource("UserBehavior.csv");File file =new File(fileUrl.toURI());二、对于spring boot ,应用程序本身被打成jar包,使用上面的方式,是读取不到resource目录下文件的。需要采用如下...

2019-12-06 15:51:18 1421

原创 在service上通过注解实现对远程应用服务的统一拦截AOP

一、增加注解增加一个作用于类及方法上的注解,并且参数中可以指明这是对哪个应用的拦截。@Target({ElementType.TYPE, ElementType.METHOD})@Retention(RetentionPolicy.RUNTIME)public @interface ProxyInterceptor { /** * 第三方应用唯一标识 *...

2019-11-01 16:06:39 347

原创 一致性hash与分库分表

分库分表的原则:1、当数据量较大时,需要分库分表。通常为保证某个用户的数据在同一个库同一个表中,都是按照customerId进行分库分表的。2、有时每天产生大量数据,这些数据只是为了对账,也可以按月分库,按天分表。比如分为12个库,366张表(考虑闰年),但数据每天用完后,可以把这些数据再迁移到历史表中,或者类似hdfs这样的表中。3、分库分表后考虑数据库的扩容问题,同时还要保证在业务...

2019-11-01 15:51:04 2996 1

原创 使用CountDownLatch进行并发处理

比如后台需要并发刷新很多元素,逐个刷新比较慢,可以使用CountDownLatch进行并发刷新。当请求特别多时候,很容易造成线程池满,此时应该考虑有一种线程保护机制,采用快速失败的方式对外抛出特定的异常。上层业务感知该异常后,可提示前端繁忙,请稍后再试一试。线程保护机制是创建线程执行器时候,采用SynchronousQueue队列,当请求超过线程池最大队列时候,线程池会直接抛出Reje...

2019-11-01 14:39:54 752

原创 关于门面服务统一拦截,统一异常处理的方法

一、定义一个通用的Result类目的是保证整个系统有一个通用的响应对象,这样统一处理会比较方便public class Result<T> implements Serializable{ private boolean success = true;//业务是否处理成功 private String code;//业务处理的错误码 pr...

2019-11-01 14:26:26 183

原创 秒懂JAVA泛型

泛型方法必须在方法前加上<T>来标记是个泛型方法入参为泛型<T> String query(T param) ,不限定入参类型<T extends People> String query(T parma),限定入参类型必须是People的子类泛型接口public interface ButtonElementBizService&...

2017-10-02 11:10:56 446

原创 多线程异步调用等待响应结果后继续处理

1、在有响应的时候,使用ResponseFuture对象,并在onResponse方法中,将响应设置到Futrue中。import com.google.common.util.concurrent.AbstractFuture;public classResponseFuture<JsonProtocol> extends AbstractFuture<J...

2017-02-07 19:14:04 4611

原创 Spring编程式事务管理案例

import org.springframework.beans.factory.annotation.Autowired;import org.springframework.transaction.TransactionStatus;import org.springframework.transaction.support.TransactionCallback;impor...

2017-01-18 16:50:50 585

原创 VM模板学习

1.$是占位符号,在模板合并时,会被替换成文本值(注意只能是字符串)    当定义占位符时,$后只能是英文字母,如$name,如果是数字,如$100,那么打印出100美金 2.#set()可以为变量赋值,可以是字符串、数字、布尔值等,例如#set($name=“hzx”)或 #set($age=29)  #set($isMale=true)  

2016-03-29 17:46:04 1443

原创 MAC下Eclipse的启动

1.Mac下打开多个Eclipse open -n /Applications/Eclipse.app 2.安装好Eclipse后执行如下标准动作:    2.1、导入代码格式:偏好设置-输入fromate    2.2、设置Maven的位置:          2.1 maven-installations中设置本地目录          2.2 ma

2016-03-29 17:45:20 3915

转载 泛型编程

详细文章:http://qiemengdao.iteye.com/blog/15256241、初衷:取消强制类型转换,减少转换异常,引入了泛型编程如ArrayList a = new ArrayList();a.add(newInteger[0]);Integer b = (Integer)a.iterator.next(); //此处就必须

2016-03-29 17:44:11 394

原创 深入浅出JVM调优

一、基本概念:       JVM把内存区分为堆区(heap)、栈区(stack)和方法区(method)。由于本文主要讲解JVM调优,因此我们可以简单的理解为,JVM中的堆区中存放的是实际的对象,是需要被GC的。其他的都无需GC。        下图文JVM的内存模型                         从图中我们可以看到,         1、JVM实...

2015-07-01 09:35:19 1350

原创 基于redis集群实现的分布式锁,可用于秒杀商品的库存数量管理,有测试代码

转载请标明出处。在分布式系统中,经常会出现需要竞争同一资源的情况,本代码基于redis3.0.1+jedis2.7.1实现了分布式锁。redis集群的搭建,请见我的另外一篇文章:<>《redis3.0.1集群环境搭建》可用于例如秒杀系统中的商品库存的管理。付完整代码及测试用例。package com.gaojiasoft.gaojiaRedis;...

2015-06-04 16:19:42 8033 2

原创 Redis3.0.1集群环境搭建

需要安装(ruby-2.2.2.tar.gz/rubygems/zlib/openssl/redis-3.2.1.gem)      1、准备工作:需要安装ruby,通过源代码安装      tar -zxvf ruby-2.2.2.tar.gz      mkdir -p /usr/local/ruby      cd ruby-2.2.2 进入到解压包下面     

2015-06-04 16:12:29 1547

原创 MongoDB3.0.1分片部署,国内3.0的部署文档还不是很多

一)、分片包括:1、至少3个config服务器:存储了数据块对分片的映射,用于判断数据存储在那个片上。2、分发路由器:1个以上的mongos,将用户的读、写请求分发到分片中,该服务器被应用程序访问,应用程序不直接访问分片。3、2个以上的分片,每个分片是单独的 mongod 或者是 replica set,如果是开发、测试环境,分片可以使独立的mongod而不一定要是副本集。...

2015-06-01 17:51:07 1446

原创 APNS推送服务器开发指南

一、苹果官方APNS推送服务知识点: 1)、假如用户手机不在线,可能没有信号或者关机吧,APNs会存储转发,等用户在线时再发送. 2)、如果用户不在线,通知会合并,只会保留最新的一条。假如你给用户发了两条通知,但用户反馈说,只收到了一条,那么很可能是用户当时不在线,APNS的合并策略生效,只保留了最近一条。 3)、通知文本长度不能超过256个字节,即128个汉字,超...

2015-04-20 16:54:39 1261

原创 Hadoop分布式文件存储系统HDFS高可用HA搭建

一、准备5台机器: 1台NameNode,处于active状态。 1台NameNode,处于standBy状态,如果主NameNode挂了,自动切换到standBy机器,属于Hdoop的HA。可以由很多台处于standBy状态的NameNode,一般一台就够了。同一时刻,只能有一台处于active状态的NameNode 。 另外3台是DataNode。...

2015-04-02 10:29:25 1687

原创 Spring整合Dubbo,使用zookeeper作为注册中心,进行远程调用及负载均衡、自动失效转移

1、Mavn依赖:<span style="white-space:pre"> </span><!-- dubbo begin --> <dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artif...

2015-04-01 09:39:30 2545

原创 zookeeper3.4.6分布式数据一致性服务集群在CentOS6.5上部署

zookeeper3.4.6官方稳定版下载:下载1、zookeeper集群安装(3台机器) 1)、前提:安装jdk 1.7 2)、将zookeeper-3.4.6.tar.gz,使用root用户上传到某个目录下,并解压。 tar -zxvfzookeeper-3.4.6.tar.gz 我这里解压的目录是/soft/zooke...

2015-04-01 09:33:19 1238 2

mac.idea.settings.jar

Mac下IDEA与Eclipse快捷键保持一致的setting文件,可以打开IDEA,文件,然后导入该设置。

2019-12-06

全国省市区XML及SQL格式

全国省市区XML及SQL格式,数据库三张表。省表、市表、区表。通过ID进行关联。

2015-09-01

zookeeper-3.4.6

zookeeper-3.4.6,分布式数据一致性解决方案

2015-04-01

redis-2.8.19.tar.gz

redis-2.8.19.tar.gz ,官方最新稳定版本

2015-03-17

rabbitmq-server-generic-unix-2.8.2.tar.gz

rabbitmq-server-generic-unix-2.8.2.tar.gz,消息服务中间件,消息队列。

2015-03-13

keepalived-1.1.15.tar.gz

keepalived,高可以用服务,维持多台服务器的系统,一台挂了,自动切换到另外一台。

2015-03-13

lvs安装包:ipvsadm

lvs安装包:ipvsadm,linux visual service,虚拟服务器,进行负载均衡.

2015-03-13

apache-tomcat-8.0.12.tar.gz

apache-tomcat-8.0.12.tar.gz,web服务器

2015-03-13

telnet-server-0.17-41.el5.x86_64.rpm

telnet-server-0.17-41.el5.x86_64.rpm,安装telnet服务,通过xshell使用

2015-03-13

xinetd-2.3.14-39.el6_4.x86_64.rpm

xinetd-2.3.14-39.el6_4.x86_64.rpm,安装telnet的时候使用

2015-03-13

vsftpd-2.2.2-12.el6_5.1.x86_64.rpm

为centos服务器安装ftp服务器,并创建ftp账号

2015-03-13

mongodb-linux-x86_64-rhel62-3.0.0.gz

官方发布的mongodb3.0安装包,适用于linux及centos系统。

2015-03-13

全国省市县三级行政单位JSON格式文本

全国省市县三级行政单位的JSON格式文本文件. 通过解析该文件可以: 1、将全国JSON格式的文本文件IO读取为字符串。 2、将该字符串进行JSON解析,加载到缓存中。 3、依据省名称,可以查找到该省下的所有城市。 4、依据市名称,可以查找到该市下的所有区县。 5、依据市名称查找该市属于哪个省。 以江苏省为例如下: "江苏省":{"南京市":["玄武区","白下区","秦淮区","建邺区","鼓楼区","下关区","浦口区","栖霞区","雨花台区","江宁区","六合区","溧水县","高淳县"],"无锡市":["崇安区","南长区","北塘区","锡山区","惠山区","滨湖区","江阴市","宜兴市"],"徐州市":["鼓楼区","云龙区","九里区","贾汪区","泉山区","丰县","沛县","铜山县","睢宁县","新沂市","邳州市"],"常州市":["天宁区","钟楼区","戚墅堰区","新北区","武进区","溧阳市","金坛市"],"苏州市":["沧浪区","平江区","金阊区","虎丘区","吴中区","相城区","常熟市","张家港市","昆山市","吴江市","太仓市"],"南通市":["崇川区","港闸区","海安县","如东县","启东市","如皋市","通州市","海门市"],"连云港市":["连云区","新浦区","海州区","赣榆县","东海县","灌云县","灌南县"],"淮安市":["清河区","楚州区","淮阴区","清浦区","涟水县","洪泽县","盱眙县","金湖县"],"盐城市":["亭湖区","盐都区","响水县","滨海县","阜宁县","射阳县","建湖县","东台市","大丰市"],"扬州市":["广陵区","邗江区","郊区","宝应县","仪征市","高邮市","江都市"],"镇江市":["京口区","润州区","丹徒区","丹阳市","扬中市","句容市"],"泰州市":["海陵区","高港区","兴化市","靖江市","泰兴市","姜堰市"],"宿迁市":["宿城区","宿豫区","沭阳县","泗阳县","泗洪县"]}

2015-01-28

空空如也

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

TA关注的人

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