spring cloud微服务搭建笔记

spring cloud微服务搭建笔记


小五游侠 2017-01-13 14:26:57

1.kafka 报错:Caused by: java.nio.channels.ClosedChannelException

当Kafka broker启动时,它会在ZK上注册自己的IP和端口号,客户端就通过这个IP和端口号来连接。

在AWS这种IaaS环境下,由于java.net.InetAddress.getCanonicalHostName调用拿到的HostName是类似ip-172-31-10-199这样的只有内网才能访问到的主机名,所以默认注册到ZK上的IP是内网才能访问的内网IP。

此时就需要显示指定 advertised.host.name, advertised.listeners参数,让注册到ZK上的IP是外网IP。

例如对于 59.64.11.22 IP对应的broker,需要在 server.properties 配置文件里增加如下三个配置:

新版配置

advertised.listeners=PLAINTEXT:``//59.64.11.22:9092

估计读者们也会跟我一样犯迷糊,为什么需要三个参数来配置IP和端口号呢,用一个advertised.listeners不就搞定了吗?

后来发现最新版本0.10.x broker配置弃用了advertised.host.nameadvertised.port 这两个个配置项,就配置advertised.listeners就可以了。

参考网址:http://www.cnblogs.com/snifferhu/p/5102629.html

2.解决数据库保存乱码问题

(1)更改数据库编码为utf-8,到每字段
(2)修改数据库连接url
jdbc:mysql://localhost:3306/user_service?useUnicode=true&characterEncoding=utf-8

3.安装最新java环境

1
2
3
wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u112-b15/jdk-8u112-linux-x64.rpm
rpm -ivh jdk*.rmp

4.安装docker

4.1 win7不能直接安装dicker 需要下载安装docker toolbox(测试可用版本为12.5)
4.2 docker基本使用命令

docker pull daocloud.io/library/centos #拉取镜像(daocloud源)

docker build -t euraka:v1 . #基于Dockerfile构建镜像

docker rm 容器名 #删除容器

docker rmi 镜像名 #删除镜像

dokcer ps -a #查看所有镜像,包括已停止的

docker attach 容器id #链接某个容器

Dockerfile:

FROM daocloud.io/library/centos
MAINTAINER awoo,ccwccw@aliyun.com
# Upgrading system
RUN yum -y upgrade
RUN yum -y install wget
RUN wget http://192.168.99.1/jdk-8u111-linux-x64.rpm
RUN rpm -ivh jdk-8u111-linux-x64.rpm
RUN java -version
RUN echo 'hello world!'
COPY eureka-1.0-SNAPSHOT.jar ~
COPY config-1.0-SNAPSHOT.jar ~
RUN echo 'copy success!'

docker run -d -t -i -p 1111:1111 -p 8888:8888 --name basic-mystream euraka:v1 /bin/bash #运行一个容器

docker exec -t -d 05acad5886af java -jar config-1.0-SNAPSHOT.jar #在容器内执行命令

docker exec -t -d 05acad5886af java -jar eureka-1.0-SNAPSHOT.jar #在容器内执行命令

4.3 若遇到Exited的情况,重新run
坚持原创技术分享,您的支持将鼓励我继续创作!