Categories
java

zuul 1.x

zuul 网关应用分 1.X 版本 和 2.X 版本 两者相差很大

以下详细说明zuul 1.X 版本

在原始在zuul-core 包中 所有请求是通过 com.netflix.zuul.http.ZuulServlet 在 /zuul/* 下建立servlet 入口

然后在 zuulServlet的service方法中 执行 zuulRunner 去处理请求

然后不同请求路径下会使用 zuulRunner里面的不同的 filterProcessor 去处理

譬如 :

静态路由的地址 由配置文件配置的路由器处理

微服务路由地址 由ribbon的提供路由策略 RibbonRoutingFilter

所有的这些处理请求filter 其实是把请求重发到对应的地址

再把响应结果返回给网关(转发)

具体实现http请求的框架可以配置 okhttp httpClient 等

和 spring-boot 整合后

springmvc 用 org.springframework.cloud.netflix.zuul.web.ZuulController

包装了zuulServlet (servletWrapper)

还是通过springMVC去处理网关!!!

Categories
go

beego

go语言实现的 类似ruby on rails 的http 服务框架

需要通过 bee命令 生成controller view model 等

灵活度上会弱于普通的http框架 但架构上会优于其他框架

Categories
docker

docker remote api

docker 服务 提供给其他服务通讯的api

默认通讯socket 在本机的

unix://var/run/docker.sock

而且 必须有root权限才能访问该socket

当设置环境变量

DOCKER_OPTS="-H=unix:///var/run/docker.sock -H=0.0.0.0:4232"  

默认在本机4232 端口开启 docker 远程访问服务

该remote api socket 支持http协议

当执行 curl localhost:4232/version 返回服务器docker 版本信息

具体的docker remote api :

获取容器清单

GET /containers/json 

创建新容器

POST /containers/create

监控容器

GET /containers/(id)/json

获取容器内进程信息

GET /containers/(id)/top

获取容器日志信息

GET /containers/(id)/logs

导出容器内容

GET /containers/(id)/export

启动容器

POST /containers/(id)/start

停止容器

POST /containers/(id)/stop

重启容器

POST /containers/(id)/restart

终止容器

POST /containers/(id)/kill

创建镜像

POST /images/create

利用容器创建镜像

POST /commit

获取镜像清单

GET /images/json

导入指定的路径文件

POST /images/(name)/insert

删除镜像

DELETE /images/(name)

推送镜像到Registry

POST /images/(name)/push

Tag镜像

POST /images/(name)/tag

搜索镜像

GET /images/search

查看镜像历史

GET /images/(name)/history

构建镜像

POST /build
Categories
go

go 基本入门

标准输入流输出流

import "fmt"

func main() {
   fmt.Println("Hello, World!")
}

等同于

import "fmt"
import "os"

func main() {
   fmt.Fprinf(os.Stdout, "HelloWorld") 
}

fmt 为格式化包 用作格式化输出

fmt.Println 标准输出流打印 (默认在标准输出流输出)

os.Stdout 才是标准输出流

os.Stdin 为标准输入流

os.Stderr 为标准异常流

基本流操作


fmt.Fprinf(os.Stdout, "HelloWorld") 

往某个输出流输出数据

fmt.Fprinf(xxxout, "HelloWorld") 

基本文件控制

socket控制

Categories
go

go 基本命令

运行某个go文件

go run xxx.go

编译go文件

go build hello.go 

查看go 文档 默认在本机6060 显示web文档 (只可本机访问)

godoc 

查看某个方法

go doc fmt.Println
Categories
java mysql

mycat 实例

mycat配置解释

再mycat2/conf/有配置文件

server.xml 定义数据库连接 用户

schema.xml 定义 虚拟表和实体表

rule.xml 定义分库逻辑(入库)

route.xml定义查询时实体表路由配置(查询)

简单按字段值分库
<!-- 按照学校名分表 -->
	<tableRule name="shardingBySchoolName">
		<rule>
			<columns>school_name</columns>
			<algorithm>shardingBySchoolName</algorithm>
		</rule>
	</tableRule>
<!-- 按照学校名分表 -->
	<function name="shardingBySchoolName" class="org.opencloudb.route.function.PartitionByFileMap">
		<property name="mapFile">shardingBySchoolName.txt</property>
		<property name="type">1</property>
		<property name="defaultNode">0</property>
	</function>

shardingBySchoolName.txt

爱享=0
中悦=1
DEFAULT_NODE=1
Categories
java

elasticsearch

Categories
java

docker tomcat

静态资源目录在 /usr/local/tomcat/webapps

配置文件在 /usr/local/tomcat/conf/server.xml

Categories
java

apache httpd

Apache(音译为阿帕奇)是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python解释器编译到服务器中

服务器根目录在/usr/local/apache2/htdocs

Categories
java

jetty

Jetty 是一个开源的servlet容器,它为基于Java的web容器,例如JSP和servlet提供运行环境。Jetty是使用Java语言编写的,它的API以一组JAR包的形式发布。开发人员可以将Jetty容器实例化成一个对象,可以迅速为一些独立运行(stand-alone)的Java应用提供网络和web连接。

默认的静态资源文件夹 在/var/lib/jetty/webapps/下

添加默认根context:在/var/lib/jetty/webapps/下添加ROOT文件夹

然后在ROOT文件夹添加index.html

即可提供默认主页访问

当然也可把war包放到webapps下自动解压访问