使用docker安装kafka
下载kafkaManager源码下载地址:https://github.com/yahoo/kafka-manager/下载源码,然后上传解压准备编译
123cd /export/servers/kafka-manager-1.3.3.15unzip kafka-manager-1.3.3.15.zip -d ../servers/./sbt clean dist
编译完成之后,我们需要的安装包就在这个路径之下
1/export/servers/kafka-manager-1.3.3.15/target/universal
将我们编译好的kafkamanager的压缩包解压到指定目录
12cd /export/servers/kafka-manager-1.3.3.15/target/universalunzip kafka-manager-1.3.3.15.zip -d /export/servers/
修改配置文件
12cd /export/servers/kafka-manager-1.3.3.15/vim conf/application.conf
配置修改为如下
...
一分钟实现内网穿透(ngrok服务器搭建)
简单来说内网穿透的目的是:让外网能访问你本地的应用,例如在外网打开你本地http://127.0.0.1指向的Web站点。
最近公司的花生壳到期了,要续费,发现价格一直在涨,都是5年以上的老用户,旗舰版都没有实现内网完全穿透,打算自己动手替换这个服务,中间走了不少的弯路,这里记录一些文字为大家提供参考。
随着开发与运行移动互联网的应用越来越多对打通内外网的需要也更加迫切,如微信开发、IOS与Android开发等。
虽然租用VPS、ECS等服务器可以解决很多问题但高性能的外网服务器价格非常贵还有数据安全问题,我选择的是公网服务器仅做代理与轻量应用,复杂的应用部署到内网服务器再穿透访问。
一、内网穿透概要为了理解内网穿透我们先来了解几个概念:
1.1、IP地址网络中唯一定位一台设备的逻辑地址,类似我们的电话号码
在互联网中我们访问一个网站或使用一个网络服务最终都需要通过IP定位到每一台主机,如访问baidu网站:
其中119.75.213.61就是一个公网的IP地址,他最终指向了一台服务器。
IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址, ...
基于Redis解决并发场景下的数据不一致问题
spring-boot-redisson-lock环境
JDK 1.8
Spring boot 2.1.0.RELEASE
redisson-spring-boot-starter 3.9.1
spring-data-redis 2.1.2.RELEASE
说明我们在做业务的时候进程会碰到并发的问题,比如秒杀,下面我们通过Redis解决这类问题
1234初始化接口:http://192.168.1.145:8080/kill/initBaiKe用户秒杀抢到的商品数量接口:http://192.168.1.145:8080/kill/successNumRedisson锁秒杀接口:http://192.168.1.145:8080/kill/redis事务秒杀接口:http://192.168.1.145:8080/kill/affair
初始化数据
通过锁方式秒杀我们知道在Redis中官方提供了一个名为Redisson的工具,它的功能非常强大在她的文档中有充分的介绍:官方文档
我们使用它的lock功能,好吧废话不多说上代码
1234567891011121314151617181 ...
分布式缓存系统Memcached学习心得
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778package com.danga.MemCached.test; import java.util.Date; import com.danga.MemCached.MemCachedClient; import com.danga.MemCached.SockIOPool; public class Test { protected static MemCachedClient mcc = new MemCachedClient(); static { String[] servers ={"192.168.40.4:120 ...
简单的mybatis多数据源配置
spring-boot-mybatis-mutiple-datasource环境
开发工具:IDEA
基础工具:Maven+JDK8
所用技术:SpringBoot 2.1.1.RELEASE、Mybatis
数据库:MySQL 5.7
说明源码:spring-boot-mybatis-mutiple-datasource基于mybatis的多数据源操作,首先我们来看一下目录结构
在sql目录下有两个数据源的测试SQL可以在自己的数据库中执行方便后续的测试。
然后再我们application.properties配置文件中配置我们数据的数据源
1234567891011121314server.port=8081# 配置第一个数据源spring.datasource.hikari.db1.jdbc-url=jdbc:mysql://127.0.0.1:3306/baike?useUnicode=true&characterEncoding=utf8&useSSL=true&serverTimezone=GMT%2B8spring.datasource.hi ...
Flink入门
说明这篇文章只是让你入门接触到流计算的强大。
下载安装Apache Flink1http://www.mirrorservice.org/sites/ftp.apache.org/flink/flink-1.8.0/flink-1.8.0-bin-scala_2.12.tgz
这里以windows为例子,解压后双击start-cluster.bat启动集群模式
正常情况下,现在访问http://localhost:8081就能进入管理界面
好,写下来我们编写我们的代码,我们可以从官方的工程开始,生成Java项目的工程有两种方式,一种是maven生成
123456789mvn archetype:generate \ -DarchetypeGroupId=org.apache.flink \ -DarchetypeArtifactId=flink-quickstart-java \ -DarchetypeVersion=${1:-1.8.0} \ -DgroupId=org.myorg.quickstart \ ...
理解注解中的@Inherited
@Inherited: @Inherited 元注解是一个标记注解,@Inherited阐述了某个被标注的类型是被继承的。如果一个使用了@Inherited修饰的annotation类型被用于一个class,则这个annotation将被用于该class的子类。
注意:@Inherited annotation类型是被标注过的class的子类所继承。类并不从它所实现的接口继承annotation, 方法并不从它所重载的方法继承annotation。
当@Inherited annotation类型标注的annotation的Retention是RetentionPolicy.RUNTIME,则反射API增强了这种继承性。 如果我们使用java.lang.reflect去查询一个@Inherited annotation类型的annotation时,反射代码检查将展开工作: 检查class和其父类,直到发现指定的annotation类型被发现,或者到达类继承结构的顶层。
看下面的例子:
1234567891011121314151617181920212223242526 ...
神级代码注释鉴赏
123456789101112131415161718192021222324252627282930313233343536/*** * 瓦瓦 十 * 十齱龠己 亅瓦車己 * 乙龍龠毋日丶 丶乙己毋毋丶 * 十龠馬鬼車瓦 己十瓦毋毋 * 鬼馬龠馬龠十 己己毋車毋瓦 * 毋龠龠龍龠鬼乙丶丶乙車乙毋鬼車己 * 乙龠龍龍鬼龍瓦 十瓦毋乙瓦龠瓦亅 * 馬齱龍馬鬼十丶日己己己毋車乙丶 * 己齱馬鬼車十十毋日乙己己乙乙 * 車馬齱齱日乙毋瓦己乙瓦日亅 * ...
Nginx+Center OS 7.2 开机启动设置
centos 7以上是用Systemd进行系统初始化的,Systemd 是 Linux 系统中最新的初始化系统(init),它主要的设计目标是克服 sysvinit 固有的缺点,提高系统的启动速度。关于Systemd的详情介绍在这里。
Systemd服务文件以.service结尾,比如现在要建立nginx为开机启动,如果用yum install命令安装的,yum命令会自动创建nginx.service文件,直接用命令:
1systemcel enable nginx.service
设置开机启动即可。
在这里我是用源码编译安装的,所以要手动创建nginx.service服务文件。开机没有登陆情况下就能运行的程序,存在系统服务(system)里,即:
1/lib/systemd/system/
在系统服务目录里创建nginx.service文件1vim /lib/systemd/system/nginx.service
内容如下:
12345678910111213[Unit]Description=nginxAfter=network.target [Service]Type=fo ...
大白话解说,半分钟就懂 --- 分布式与集群是什么 ? 区别是什么?
PS:这篇文章算是笔记,仅部分文字是原创,相当内容只是收集、整理、提炼、总结别人写的。
没有标为原创 是出于对部分内容原作者的尊重和感谢
一、大白话解说,半分钟就懂,用生活中的例子来说明:小饭店原来只有一个厨师,切菜洗菜备料炒菜全干。
后来客人多了,厨房一个厨师忙不过来,又请了个厨师,两个厨师都能炒一样的菜,两个厨师的关系是集群。
为了让厨师专心炒菜,把菜做到极致,再请了个配菜师负责切菜,备菜,备料 … 厨师和配菜师的关系是分布式。
一个配菜师也忙不过来了,又请了个配菜师,两个配菜师关系是集群。
一个配菜师因故请假了,但是其余的配菜师还是该啥就干啥,只是没请假的配菜师任务均匀的加量了,但他们的任务和职责是不变的,这是集群。
集群:多个人在一起作同样的事 。
分布式 :多个人在一起作不同的事 。
二、图解:
三、区别联系 (其实上面的内容应该已经让你理解2者了)1、我记得在一本讲 tcp/ip 的书上有这样一句话:分布式是指 多个系统协同合作完成一个特定任务的系统。
分布式是解决中心化管理的问题,把所有的任务叠加到一个节点处理,太慢了。
所以把一个大的问题拆分为多个小的问题, ...