# osmp
**Repository Path**: treelee/osmp
## Basic Information
- **Project Name**: osmp
- **Description**: osgi 服务管理平台,通过servicemix可以灵活,快速,方便的开发和部署服务,支持通过zk实现分布式服务调度!
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 66
- **Created**: 2016-09-05
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
**#osmp Osgi Service Management Platform**
交流QQ群:335898216
- 基于OSGI、SERVICEMIX开发
- 组件化的开发方式,封装了大量的基础组件,可以直接用于实际项目
- 动态的数据源添加、动态的SQL支持,提供DEMO可快速零成本入门
- 在线BUNDLE服务安装、部署、升级、卸载
- 通过CXF提供基于RESTFUL的微服务访问,通过client可以方便灵活的扩展多种通讯协议
- 通过ZOOKEEPER实现基于分布式的服务注册、发现、路由、负责均衡
- 全局日志集中式管理,方便快捷的日志查询
- 提供多种维度的监控管理,数据库监控、服务监控、BUNDLE监控、性能监控、缓存监控等
- 提供基于策略的灰度升级、安全拦截、可实现参数级别的软负载和服务路由
- 提供强大的扩展能力,可以自由扩展组件以适应项目需要
- 提供强大的WEB管理界面,集中式的管理各NODE节点






**入门开发**
环境:jdk1.7以上
服务器:apache-servicemix5.1.0 目前高版本由于spring不兼容。需要修改spring配置,有兴趣的TX可以自己修改
1、添加数据源,新增数据源配置文件,并直接上传到服务器 /etc/datasource 目录下即可,系统会自动扫描并动态添加数据
com.osmp.jdbc.properties
```
osmp.jdbc.name=osmp
osmp.jdbc.driverClassName=com.mysql.jdbc.Driver
osmp.jdbc.url=jdbc:mysql://10.2.2.1:3306?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8
osmp.jdbc.username=root
osmp.jdbc.password=root
osmp.jdbc.initialSize=5
osmp.jdbc.maxActive=100
osmp.jdbc.minIdle=5
osmp.jdbc.maxWait=3000
osmp.jdbc.validationQuery=select 1
osmp.jdbc.timeBetweenEvictionRunsMillis=100000
osmp.jdbc.minEvictableIdleTimeMillis=30000
osmp.jdbc.removeAbandonedTimeout=30000
```
2、添加后可以直接访问 http://ip:8181/druid查看是否添加成功
3、开发服务组件
3.1参照提供的osmp-demo组件,建立 pom 插件工程,pom如下:
```
4.0.0
com.osmp.baseweb
osmp-parent
1.0.0
osmp-demo
bundle
osmp-demo
org.apache.felix
maven-bundle-plugin
true
${project.artifactId}
org.springframework.aop,
org.springframework.aop.framework,
org.springframework.cglib,
org.springframework.cglib.proxy,
org.springframework.cglib.core,
org.springframework.cglib.reflect,
org.aopalliance.aop,
org.aopalliance.intercept,
*;resolution:=optional
com.osmp.baseweb
osmp-intf-define
${osmp.version}
com.osmp.baseweb
osmp-jdbc
${osmp.version}
com.osmp.baseweb
osmp-cache-osgi
${osmp.version}
org.springframework.osgi
spring-osgi-core
org.osgi
org.osgi.core
```
3.2并编写服务类,服务类需要实现 BaseDateService接口如下:
```
/*
* Project: OSMP
* FileName: TestServiceImpl.java
* version: V1.0
*/
package com.osmp.demo.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.osmp.intf.define.model.Parameter;
import com.osmp.intf.define.service.BaseDataService;
import com.osmp.demo.service.user.UserService;
import com.osmp.demo.service.user.entity.User;
/**
* Description:
*
* @author: wangkaiping
* @date: 2014年9月26日 下午3:03:55
*/
@Component
public class TestServiceImpl implements BaseDataService {
@Autowired
private UserService userservice;
@Override
public Object execute(Parameter parameter) {
String name = parameter.getQueryMap().get("name");
String age = parameter.getQueryMap().get("age");
userservice.getUserAge(age);
userservice.getUserName(name);
User u = new User();
u.setAge(userservice.getUserAge(age));
u.setName(userservice.getUserName(name));
return u;
}
}
```
3.3发布为osgi服务,配置文件如下:
```
```
3.4 maven install打包后,发布,将打好的包直接复制到servicemix/deploy即可
3.5 访问服务 http://192.168.2.206:8181/cxf/service/osmp-demo?source={"from":"demo"}¶meter={"name":"gg","age":"12"}
访问规则 ip:port/cxf/service/发布的服务名称?source参数表示来源的客户端,可以自由扩展,但是frmo不能少, parameter 参数,json格式